接続文字列のプロパティ

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

この記事では、Azure Analysis Services (Azure AS)、SQL Server Analysis Services (SSAS)、およびPower BI Premiumセマンティック モデルに接続してクエリを実行するクライアント アプリケーションで使用される接続文字列プロパティについて説明します。 これらのプロパティは、Analysis Services 用の Analysis Services クライアント ライブラリ、ADOMD.NET、AMO、および OLE DB (MSOLAP) プロバイダーによって使用されます。 ほとんどの接続文字列プロパティは、3 つのクライアント ライブラリすべてで使用できます。 例外については、説明に記載しています。

左側の目次の上にある バージョン セレクターを使用して、特定のプラットフォームまたはバージョンに適用されるプロパティのみを表示します。

接続のプロパティ

データソース

サーバー インスタンスを指定します。 このプロパティは、すべての接続に必要です。

Azure Analysis Servicesの有効な値には<protocol>://<region>/<servername>、protocol が文字列asazureである場合、またはlinkサーバー名のエイリアスを使用する場合、region はサーバーが作成された URI (westus.asazure.windows.net など)、servername はリージョン内の一意のサーバーの名前です。

説明
Data source=asazure://westus.asazure.windows.net/myasserver Azure Analysis Services。
Data source=link://friendlyname.salesapp.azurewebsites.net/ サーバー名エイリアスを使用してAzure Analysis Servicesします。

Power BI Premiumの有効な値には、protocol が文字列powerbi、Uri が api.powerbi.com、テナント名がテナント名または myorgorganization、ワークスペース名が専用容量に割り当てられているワークスペースの名前が含まれます<protocol>://api.powerbi.com/v1.0/[tenant name]/[workspace name]

説明
Data source=powerbi://api.powerbi.com/v1.0/contoso.com/Sales Workspace ワークスペースPower BI Premium。

SQL Server Analysis Servicesの有効な値には、サーバーのネットワーク名または IP アドレス、ローカル接続のローカルまたはローカルホスト、サーバーが HTTP または HTTPS アクセス用に構成されている場合は URL、またはローカル キューブ (.cub) ファイルの名前が含まれます。

説明
Data source=AW-SRV01 SSAS の既定のインスタンスとポート (TCP 2383)。
Data source=AW-SRV01\Finance SSAS 名前付きインスタンス。
Data source=AW-SRV01:8081 SSAS 既定のインスタンス、指定されたポート。
Data source=AW-SRV01.corp.Adventure-Works.com SSAS 完全修飾ドメイン名、既定のインスタンス、ポート。
Data source=172.16.254.1 DNS サーバー参照をバイパスするサーバーの SSAS IP アドレス。 接続の問題のトラブルシューティングに役立ちます。
プロバイダー

MSOLAP などの OLE DB プロバイダーを使用する場合、このプロパティは接続文字列で必要です。 "Provider=MSOLAP" のようなバージョンに依存しないプロバイダー (通常は最新) を使用することも、"Provider=MSOLAP.7" などのバージョン依存プロバイダーを指定することもできます。 有効なバージョン依存値は、MSOLAP パターンに従います。<version>( <バージョン> は 7 または 8)。 たとえば、SQL Server 2016 でリリースされた MSOLAP.7 などです。 バージョン ".8" は最新であり、"常緑" と見なされます。 下位互換性が維持された状態で更新を続ける必要があります。 以前のバージョン番号も可能ですが、MSOLAP のこれらのリリースは標準サポート対象外になりました。

このプロパティは、ADOMD.NET と AMO では省略可能です。 ADOMD.NET と AMO で使用する MSOLAP 接続文字列をコピーするときに便利です。

説明
Provider=MSOLAP.7 Connections、SQL Server 2016 バージョンの OLE DB provider for Analysis Services が必要です。
キューブ

キューブ名またはパースペクティブ名。 データベースには、複数のキューブおよびパースペクティブを含めることができます。 複数の対象が考えられる場合は、接続文字列にキューブ名またはパースペクティブ名を含めます。

説明
Cube=Sales Sales という名前のキューブ。
Cube=SalesPerspective SalesPerspective という名前のパースペクティブ。

認証とセキュリティのプロパティ

Azure Analysis ServicesとPower BI Premium使用Microsoft Entra ID - MFA を使用したユニバーサル (推奨)、ユーザー名とパスワードによる認証のMicrosoft Entra、アクセス トークンのMicrosoft Entra、またはWindows 認証。

SQL Server Analysis Servicesでは、Windows 認証のみを使用します。 IIS 8.0 の Analysis Services への HTTP アクセスの構成に関する記事で説明されているように、MSMDPUMP.dll を介して HTTP アクセスが有効になっている場合は、基本認証と匿名認証を使用できます。 ANALYSIS Services over HTTP でサポートされている認証方法を構成する方法の詳細については、「 手順 3: IIS 認証 を構成する」を参照してください。

プロパティは、アルファベット順に示しています。

EffectiveUserName

サーバーでユーザー ID を偽装する必要がある場合に使用します。 SSAS の場合は、domain\user 形式で を指定します。 Azure AS と Power BI Premiumの場合は、UPN 形式で を指定します。 このプロパティを使用するには、呼び出し元に Analysis Services に対する管理権限が必要です。 Power BI Premiumでは、呼び出し元は、セマンティック モデルが配置されているワークスペース管理者である必要があります。

CustomData

接続文字列内のエンジンに渡され、CustomData() MDX 関数または CUSTOMDATA() DAX 関数を使用して取得される文字列値。 userID またはユーザー名を値として渡し、セキュリティ式の定義でその値を指定するために最も一般的に使用されます。

Encrypt Password

ローカル キューブを暗号化するためにローカル パスワードを使用するかどうかを指定します。 有効な値は True または False です。 既定値は False です。

Encryption Password

暗号化されたローカル キューブの暗号化を解除するために使用するパスワード。 既定値は空です。 この値は、ユーザーが明示的に設定する必要があります。

Impersonation Level

サーバーがクライアントの権限を借用するときに使用できる権限借用レベルを示します。 有効な値は、次のとおりです。

  • 匿名。 クライアントはサーバーに対して匿名です。 サーバー プロセスは、クライアントに関する情報を取得することも、クライアントを偽装することもできません。
  • 識別します。 サーバー プロセスではクライアント ID を取得できます。 サーバーは承認のためにクライアント ID を偽装できますが、システム オブジェクトにクライアントとしてアクセスすることはできません。
  • 権限を借用する。 これが既定値です。 クライアント ID の権限を借用できますが、接続を確立する場合に限られ、すべての呼び出しで借用できるわけではありません。
  • デリゲート。 サーバー プロセスでは、クライアントに代わって機能を実行するときに、クライアントのセキュリティ コンテキストの権限を借用できます。 また、他のサーバーに対する呼び出しを送信することもできます。
Integrated Security

Analysis Services に接続するために使用する呼び出し元の Windows ID。 有効な値は 、SSPIblankBasicClaimsToken* です。

SSPI は、NTLM、Kerberos、または匿名認証を許可する TCP 接続の既定値です。 Azure AS とPower BI Premiumの場合、SSPI は AD 翻訳を示します。 SSPI を使用する場合は、 ProtectionLevel プロパティを Connect、Pkt Integrity、または Pkt Privacy に設定する必要があります。

blank は HTTP 接続の既定値です。

*ClaimsToken は、Azure AS とPower BI Premiumでサポートされています。

Persist Security Info

有効な値は True または False です。 True に設定した場合、以前に接続文字列に指定したユーザー ID やパスワードなどのセキュリティ情報を接続の確立後に接続から取得できます。 既定値は False です。

保護レベル

接続で使用するセキュリティ レベルを指定します。 サポートされる値は、基になるトランスポートによって異なります。 有効な値は次のとおりです。

  • なし。 未認証の接続または匿名接続。 サーバーに送信されるデータの認証は行われません。
  • 接続します。 認証された接続。 クライアントがサーバーとのリレーションシップを確立するときにのみ認証が行われます。
  • パケット整合性。 暗号化された接続。 すべてのデータがクライアントから受信され、転送中に変更されていないことを確認します。
  • パケット プライバシー。 署名された暗号化。TCP でのみサポートされます。 すべてのデータがクライアントから受信されていること、転送中に変更されていないことを確認し、暗号化することでデータのプライバシーを保護します。

詳細については、「ADOMD.NET でのセキュリティで保護されたConnectionsの確立」を参照してください。

ロール

定義済みロールのコンマ区切りの一覧を指定します。そのロールによって与えられる権限を使用して、サーバーまたはデータベースに接続します。 このプロパティを省略した場合、すべてのロールを使用し、有効な権限はすべてのロールの組み合わせになります。 たとえば、 プロパティを空の値に設定すると、 Roles=' ' クライアント接続にロール メンバーシップがないことを意味します。

このプロパティを使用した管理者は、ロールによって与えられた権限を使用して接続します。 ロールで十分なアクセス許可が提供されていない場合、一部のコマンドが失敗する可能性があります。

Power BI Premium ワークスペースに接続するときにロールを指定する場合は、Power BI セキュリティ モデルのワークスペース ロールを使用します。

SSPI

Integrated SecuritySSPIに設定されているときにクライアント認証に使用するセキュリティ パッケージを明示的に指定します。 SSPI では複数のパッケージがサポートされていますが、このプロパティを使用すると特定のパッケージを指定できます。 有効な値は次のとおりです。

  • ネゴシエート
  • Kerberos
  • [NTLM]
  • 匿名ユーザー

このプロパティが設定されていない場合、すべてのパッケージが接続で使用できるようになります。

Use Encryption for Data

データ転送を暗号化します。 有効な値は True または False です

ユーザー ID=...;Password=

クライアント アプリケーションの現在アクティブなユーザーをサーバーに自動的に伝達できない場合、ユーザー ID プロパティと Password プロパティはサーバーに適切な資格情報を提供します。 動作は、トランスポート プロトコルと接続先のサーバーによって異なります。

  • TCP 経由で SSAS に接続すると、クライアント ライブラリは、指定されたユーザー名とパスワードを使用して Windows ユーザーを偽装し、通常どおりサーバーに接続します。

  • HTTP(S) 経由で SSAS に接続する場合、資格情報は、Web サーバーで構成されている認証モード (Basic 認証や Windows 認証など) に基づいて Web サーバーに提供されます。Web サーバーは、SSAS サーバーに接続する前に適切な Windows 偽装を実行するため、サーバーへの正しい資格情報フローが提供されます。

  • Azure AS またはPower BI Premiumに接続する場合、ユーザー ID とパスワードを使用してMicrosoft Entra トークンを取得し、認証中にサービスに提示します。 Microsoft Entra IDには多要素認証 (MFA) が必要になる場合もあります。これにより、トークンを生成する前に追加のユーザー操作が必要になる場合があります。

  • 独自のアプリケーションから有効なMicrosoft Entra IDベアラー アクセス トークンを既に取得している場合は、接続を確立する前に AdomdConnection オブジェクトの AccessToken プロパティを設定できます。 関連する接続オブジェクト (AdomdConnection、Server など) の AccessToken プロパティで、アクセス トークンを設定し、有効期限を指定してください。 認証は、ユーザーに対して対話形式で取得されたベアラー トークンと、 OAuth 2.0 On-Behalf-Of フロー (たとえば、ユーザーの代わりに Analysis Services に接続する中間層 Web アプリケーション) を使用してサポートされます。 AccessToken プロパティでアクセス トークンを渡すときは、トークンの種類を省略します。 Analysis Services クライアント ライブラリは、認証スキーム値 "Bearer" を アクセス トークンに自動的に追加します。 次の点に注意してください。

    • ベアラー アクセス トークンMicrosoft Entra有効期間は限られています。 既定では、60 から 90 分です。 アプリケーションがアクセス トークンの有効期間を超える実行時間の長い操作を実行する場合は、AdomdConnection オブジェクトの OnAccessTokenExpired プロパティを使用してコールバック関数を提供して、現在のアクセス トークンの有効期限が近づいたときにアクセス トークンを更新できます。 または、コールバック関数の助けを借りずに AccessToken プロパティを直接更新することもできます。 アクセス トークンが現在のアクセス トークンの有効期間内に更新されるようにするには、コールバック関数を使用することをお勧めします。
    • Password 接続文字列 プロパティを使用してアクセス トークンを渡すのはお勧めしません。 引き続き、接続文字列の User ID プロパティを省略し、Password プロパティにアクセス トークンのみを指定できますが、そのような場合はアクセス トークンを更新できません。 代わりに AccessToken プロパティを使用して、必要に応じて既存の接続に新しいアクセス トークンを提供できるようにします。 Password プロパティと AccessToken プロパティの両方の設定はサポートされていません。

メモ: "ユーザー ID" には埋め込みスペースがあります。 ユーザー ID の代替エイリアスは UID で、Password の代替エイリアスは PWD です。

特殊な目的のプロパティ

これらのプロパティは、アプリケーションで必要な特定の接続動作を保証するために使用されます。 プロパティは、アルファベット順に示しています。

アプリケーション名

接続に関連付けられたアプリケーションの名前を設定します。 この値は、トレース イベントを監視する場合 (特に、同じデータベースにアクセスするアプリケーションが複数ある場合) に役立ちます。 たとえば、アプリケーション名='test' を接続文字列に追加すると、SQL Server Profiler トレースに 'test' が表示されます。 このプロパティのエイリアスには、 SspropInitAppNameAppName が含まれます。 詳細については、「SQL Server Connectionsのアプリケーション名」を参照してください。

自動同期期間

クライアントとサーバーのキャッシュを同期する頻度 (ミリ秒単位) を設定します。 ADOMD.NET には、最小限のメモリ オーバーヘッドが発生する、よく使用されるオブジェクトのために、クライアント キャッシュが用意されています。 これは、サーバーへのラウンド トリップを減らすのに役立ちます。 既定値は 10,000 ミリ秒 (または 10 秒) です。 null または 0 に設定した場合、自動同期は無効になります。

パフォーマンス上の理由から、クライアント ライブラリは、特定のスキーマ行セットなど、サーバーからの情報をキャッシュします。 自動同期期間を使用すると、ユーザーは、キャッシュを空にする必要があるかどうかをクライアント ライブラリがサーバーに確認するまでの期間を変更できます。 一般に、値を既定値から変更する必要はありません。

Character Encoding

要求での文字をエンコードする方法を定義します。 有効な値は 、既定値 または UTF-8 (これらは同等)、 UTF-16 です

CommitTimeout

XMLA プロパティ。 現在実行中のコマンドのコミット フェーズがロールバックするまでに待機する時間をミリ秒数で指定します。 0 より大きいとき、サーバー構成の該当する CommitTimeout プロパティの値をオーバーライドします。

CompareCaseSensitiveStringFlags

指定されたロケールの大文字と小文字を区別する文字列の比較を調整します。

Compression Level

TransportCompression が圧縮されている場合は、圧縮レベルを設定して、使用される圧縮の量を制御できます。 有効な値は 0 ~ 9 で、0 は圧縮率が最も低く、9 は最も圧縮率が高くなります。 圧縮率を上げると、パフォーマンスが低下します。 既定値は 0 です。

Connect Timeout

クライアントがタイムアウトするまでに接続を試行する最大時間 (秒単位) を決定します。この期間内に接続が成功しない場合、クライアントは接続の試行を終了し、エラーを生成します。

DbpropMsmdRequestMemoryLimit

接続の Memory\QueryMemoryLimit サーバー プロパティ値をオーバーライドします。

キロバイト単位で指定すると、クエリ中に使用されるメモリの量を、QueryMemoryLimit で許容される最大メモリ (パーセンテージとして指定) から 減らすことができます 。 QueryMemoryLimit で指定された最大許容メモリを超えて使用されるメモリの量を増やすことはできません。

既定の MDX ビジュアル モード

ディメンションのセキュリティを適用する場合に、メンバーを集計する方法を制御するには、このプロパティを設定します。

すべてのユーザーが表示できるキューブ データでは、合計に合算されるすべての値を表示できるため、すべてのメンバーを集計することは適切です。 ただし、ユーザー ID に基づいてディメンションをフィルター選択または制限している場合は、すべてのメンバーに基づいた合計を表示すると、制限されている値と許可されている値の両方が単一の合計に合算されるため、わかりにくくなることや、必要以上の情報が表示されることになります。

ディメンションのセキュリティを適用する場合に、メンバーを集計する方法を指定するには、このプロパティを True に設定して、集計に許可されている値のみを使用するか、False に設定して、制限されている値を合計から除外します。

接続文字列で設定した場合、この値はキューブ レベルまたはパースペクティブ レベルに適用されます。 モデル内では、より細かなレベルで表示部分の合計を制御できます。

有効な値は次のとおりです。

  • 既定値は 0 です。 現在、既定の動作は 2 と同じです。集計には、ユーザーに対して表示されない値が含まれます。
  • 1 は、合計から非表示の値を除外します。 これは、Excel での既定値です。
  • 2 には、合計に非表示の値が含まれます。 これは、サーバーでの既定値です。

このプロパティのエイリアスは VisualMode です

MDX Compatibility

このプロパティの目的は、MDX クエリを発行するアプリケーションの MDX 動作の一貫性を確保することです。 Excel で MDX クエリを使用して、Analysis Services に接続されたピボットテーブルを設定および計算する場合は、このプロパティを 1 に設定し、不規則階層のプレースホルダー メンバーがピボットテーブルに表示されるようにします。 有効な値は、0、1、および 2 です。

0 および 1 では、プレースホルダー メンバーが公開されます。2 では、公開されません。 このプロパティが空の場合は、0 と見なされます。

MDX のメンバー モードがありません

欠落したメンバーを MDX ステートメントで無視するかどうかを示します。 有効な値は 、既定値エラーおよび無視です。 既定では、サーバーで定義されている値を使用します。 Error では、メンバーが存在しない場合にエラーが生成されます。 Ignore では、欠落した値を無視するように指定します。

Optimize Response

次のどのクエリ応答の最適化を有効にするかを示すビットマスク。

  • 0x01 NormalTupleSet (既定値) を使用します。
  • 0x02 スライサーが空の場合に使用します。
Packet Size

TCP 接続にのみ適用されます。 ネットワーク パケットのバイト単位のサイズ (512 ~ 32,767)。 既定のネットワーク パケット サイズは 4,096 です。

Protocol Format

XMLA 通信プロトコルで使用される XML の形式を設定します。 有効な値は 、既定値XML、または バイナリです。 XML をバイナリ形式またはテキスト XML として送信するように指定できます。 バイナリ形式では、XML 要素と属性をエンコードするため、サイズが小さくなります。 さらに、トランスポート圧縮オプションを使用して、メッセージの圧縮を有効にして、要求と応答のサイズを小さくすることもできます。 要求と応答では、クライアントとサーバーでサポートされている内容に応じて、異なるプロトコル形式を使用できます。 たとえば、クライアント ライブラリでサポートされるのは応答のバイナリのみで、要求の場合はサポートされない場合や、サーバーが受信要求に対してバイナリを無効にした場合などです。

OLE DB プロバイダーでは、要求と応答をバイナリ形式または圧縮形式に変換できます。 AMO および ADOMD.NET では、要求をテキスト形式に変換しますが、バイナリ形式または圧縮形式の応答を受け入れます。

この接続文字列プロパティは、 EnableBinaryXML および EnableCompression サーバー構成設定と同じです。

Real Time Olap

キャッシュをバイパスするようにこのプロパティを設定すると、すべてのストレージ クエリでソース システムからデータがフェッチされます。 既定では、このプロパティは設定されていません。

Safety Options

ユーザー定義関数とユーザー定義アクションの安全性レベルを設定します。 有効な値は 012 です。 Excel 接続では、このプロパティは Safety Options=2 です。 このオプションの詳細については、「 ConnectionString」をご覧ください。

SQLQueryMode

SQL クエリに計算を含めるかどうかを指定します。 有効な値は 、Data、Calculated、 IncludeEmpty です。 Data は、計算を許可しないことを示します。 Calculated では、計算を許可します。 IncludeEmpty では、クエリ結果で計算および空の行を返すことができます。

タイムアウト

エラーが発生するまでに、クライアント ライブラリがコマンドの完了を待機する時間 (秒単位) を指定します。

Transport Compression

クライアントとサーバーの通信を圧縮する方法を定義します。 有効な値は 、既定値なし圧縮です。 None は、圧縮が使用されていないことを示します。 Compressed では XPRESS 圧縮が使用されます。

UseExistingFile

ローカル キューブに接続する場合に使用します。 このプロパティでは、ローカル キューブを上書きするかどうかを指定します。 有効な値は True または False です。 True に設定した場合、キューブ ファイルが存在する必要があります。 既存のファイルが接続の対象となります。 False に設定した場合、キューブ ファイルが上書きされます。

こちらもご覧ください

AMO の基本クラス - サーバー オブジェクト
AdomdConnection クラス - プロパティ