DSN レスコネクションの作成¶
一部の ODBC ツールは、データソース名 (DSN) を使用しない ODBC サーバーへの接続をサポートしています。これは DSN レスコネクションと呼ばれています。
ここでは、Virtual DataPort への DSN レスコネクションを作成するために使用する必要があるパラメータを示します。
DRIVER={DenodoODBC Unicode(x64)};UID=<user account>;PWD=<password of the user>;SERVER=<host name>;DATABASE=<database name>;PORT=9996;SSLmode=prefer;service=;krbsrvname=HTTP;UserAgent=<user agent>;ReadOnly=0;Protocol=7.4-1;FakeOidIndex=0;ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;ConnSettings=set+i18n+to+us%5fpst%3b;Fetch=100;Socket=4096;UnknownSizes=0;MaxVarcharSize=255;MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=0;Ksqo=0;UseDeclareFetch=1;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsChar=0;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;UpdatableCursors=0;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;UseServerSidePrepare=0;LowerCaseIdentifier=0;PreferLibpq=1;GssAuthUseGSS=0;XaOpt=3;UseKerberos=0
DRIVER={DenodoODBC Unicode};UID=<user account>;PWD=<password of the user>;SERVER=<host name>;DATABASE=<database name>;PORT=9996;PWD=;SSLmode=prefer;service=;krbsrvname=HTTP;UserAgent=<user agent>;ReadOnly=0;Protocol=7.4-1;FakeOidIndex=0;ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;ConnSettings=set+i18n+to+us%5fpst%3b;Fetch=100;Socket=4096;UnknownSizes=0;MaxVarcharSize=255;MaxLongVarcharSize=8190;Debug=0;CommLog=0;Optimizer=0;Ksqo=0;UseDeclareFetch=1;TextAsLongVarchar=1;UnknownsAsLongVarchar=0;BoolsAsChar=0;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes=dd_;LFConversion=1;UpdatableCursors=0;DisallowPremature=0;TrueIsMinus1=0;BI=0;ByteaAsLongVarBinary=0;UseServerSidePrepare=0;LowerCaseIdentifier=0;PreferLibpq=1;GssAuthUseGSS=0;XaOpt=3;UseKerberos=0
上記の例について説明します。
上記の例を使用するには、
<user account>
、<password of the user>
、<host name>
、<database name>
、および<user agent>
を置き換えます。デフォルトの ODBC ポートを変更した場合、9996 を Virtual DataPort の実際の ODBC ポートに置き換えます。プロパティ
DRIVER
の値は、コネクションを 32 ビットクライアントまたは 64 ビットクライアントのいずれで作成するかに応じて、それぞれ{DenodoODBC Unicode}
または{DenodoODBC Unicode(x64)}
にする必要があります。DSN レスコネクションを使用する場合、パスワードに
%
、{
、}
、+
が含まれていると、接続できないことがあります。その場合は、%
を%25
、+
を%2B
、{
を%7B
、}
を%7D
でエスケープする必要があります。
注釈
パラメータ名、等号記号、値、セミコロンなどの間にはスペースを挿入しないでください。
Kerberos 認証の使用¶
Kerberos 認証を使用して Virtual DataPort に接続するには、Denodo の管理者に Kerberos が Virtual DataPort 上で構成されている かどうかを確認してください。構成されていない場合、OAuth プロトコルを使用したコネクションは失敗します。
DSN レスコネクションで Kerberos 認証を使用するには、以下を考慮しながら、以前の一般的なテンプレートを使用します。
パラメータ
UID
とPWD
を削除します。パラメータ
UseKerberos
を1
に設定します。
SERVER
プロパティの値は、Denodo サーバーの完全修飾ドメイン名である必要があります。つまり、Denodo サーバーの Kerberos 構成の [Server principal] フィールドがHTTP/denodo-prod.subnet1.contoso.com@CONTOSO.COM
の場合、「denodo-prod.subnet1.contoso.com
」と入力します。通常、
krbsrvname
はデフォルト値で問題ありません。この値はサーバーのサービスプリンシパル名の「サービスクラス」と一致している必要があります。たとえば、サーバーの Kerberos 設定の [Server Principal] フィールドの値がHTTP/denodo1.contoso.com@CONTOSO.COM
の場合、krbsrvname の値は HTTP である必要があります。
OAuth 認証の使用¶
OAuth 認証を使用して Virtual DataPort に接続するには、Denodo の管理者に Virtual DataPort 上で OAuth が有効になっている かどうかを確認してください。有効になっていない場合、OAuth プロトコルを使用したコネクションは失敗します。
Denodo ODBC ドライバーでは、OAuth を使用する Denodo への接続に 2 つの経路を用意しています。選んだ経路に応じて、パラメータなどをコネクション文字列に追加する必要があります。
経路 #1: アクセストークンを提供する OAuth 2.0 認証
クライアントアプリケーションは、OAuth アクセストークンを取得し、それをドライバーに渡します。その後、ドライバーはユーザー/パスワードの代わりにこのトークンを使用して、Virtual DataPort に接続します。
この経路は、Virtual DataPort に接続するためのアクセストークンを取得する機能を持つクライアントアプリケーションで使用することを想定したものです。このクライアントアプリケーションは、このアクセストークンを自身のため、またはアプリケーションのエンドユーザーのために取得できます。
この方法を使用するには、以下の手順に従って実施してください。
次のパラメータを DNS レスコネクション文字列に追加します。
UseOAuth2=1
: OAuth 2.0 認証を有効にします。AccessToken
: この値はクライアントアプリケーションによって取得されたアクセストークンです。
パラメータ
UID
とPWD
を削除します。
経路 #2: リソース所有者パスワード資格情報による OAuth 2.0
クライアントアプリケーションに OAuth トークンを取得する機能がない場合、組織の ID プロバイダーが Resource Owner Password Credentials という OAuth フローをサポートしていれば、ドライバーがアプリケーションに代わってトークンを取得することができます。
この場合、ID プロバイダーに関する情報を使ってコネクションを構成できます。その情報は、ID プロバイダーにトークンをリクエストするための URL、ID プロバイダーに登録したアプリケーションのクライアント ID とクライアントシークレットなどです。
この方法を使用するには、以下の手順に従って実施してください。
パラメータ
UID
およびPWD
の値を提供します。これらに対して、アクセストークンを取得するための ID プロバイダーの資格情報が提供されます。コネクション文字列に、以下のパラメータを追加します。
プロパティ |
意味 |
---|---|
UseOAuth2 |
|
TokenEndpoint |
OAuth サーバーによって公開される URL。access_token をリクエストするために使用されます。例: |
ClientId |
アプリケーションのクライアント ID。通常はクライアントアプリケーションを ID プロバイダーに登録するときに取得します。 |
ClientSecret |
アプリケーションのクライアントシークレット |
スコープ |
リクエストされるスコープのアクセス許可のスペースで区切られたリスト。 |
ExtraParams |
ドライバーが OAuth トークンを取得するために送信する HTTP リクエストの本文に追加されるパラメータ。このパラメータの値の構文は |
UseIdToken |
|
OAuthSSLVerify |
|