セキュリティのアーキテクチャ

Microsoft SQL Server 2005 Analysis Services (SSAS) は、ユーザーの認証を Microsoft Windows に依存しています。既定では、Analysis Services 内で権限を持つ、認証済みのユーザーのみが、Analysis Services への接続を確立できます。ユーザーが Analysis Services に接続すると、Analysis Services 内でそのユーザーが持つ権限は、そのユーザーが直接または Windows ロールのメンバシップを通して所属する Analysis Services ロールに割り当てられた権限によって決定されます。

  • Analysis Services には、インスタンス全体で任意のタスクを実行する権限をメンバに与える単一の固定サーバー ロールがあります。
  • 固定サーバー ロールのメンバではないユーザーは、1 つ以上のデータベース ロールのメンバになることができます。各データベース ロールには、ユーザーがデータにアクセスし特定のデータベース内でタスクを実行するための、カスタマイズされた一連の権限があります。
  • データベース ロールには、管理者権限、オブジェクトの処理権限、オブジェクト メタデータの表示権限、および各 Analysis Services データベース内の複数レベルでデータを表示または変更する権限を与えることができます。
  • 管理者権限を持つデータベース ロールのメンバには、データベース内のすべてのデータを表示したり、更新したりする権限があります。その他のデータベース ロールのメンバは、表示または更新の権限を与えられたデータ オブジェクトしか表示または更新できません。
  • Analysis Services データベース内での権限は、最初はデータベース レベルで与えられます。データベース ロールにデータベース レベルの権限がある場合、そのロールには、そのデータベース内の各オブジェクトに対する権限が与えられる必要があります。ロールに権限を与えることができるオブジェクトには、データベース ディメンションおよびキューブ ディメンション、個々のディメンション メンバ、キューブ、キューブ内の個々のセル、マイニング構造、マイニング モデル、データ ソース、およびストアド プロシージャがあります。
  • これらのセキュリティ アーキテクチャ コンポーネントの他に、Analysis Services ではすべてのクライアント/サーバー間の通信を暗号化することによって、未承認のユーザーが許可されていない情報にアクセスできる危険性を低減しています。最後に、構成や使用環境が不適切な場合にセキュリティを危険にさらす可能性のある Analysis Services の機能は、既定で無効になっています。たとえば、ユーザーが認証なしで Analysis Services に接続できるようにすることも、クリア テキストで送信された認証を受け入れるようにすることもできますが、これらを間違って実行した場合はセキュリティを危険にさらすことになるため、この種の機能を開始するには、既定の設定を変更する必要があります。

Windows 認証

Analysis Services へのアクセスは、Microsoft Windows 認証に基づきます。この認証モデルでは、Analysis Services に保存されたデータにアクセスし、Analysis Services オブジェクトを管理するためには、ユーザーはすべて Windows オペレーティング システムによって認証される必要があります。オペレーティング システムで認証を実行することにより、Analysis Services は、パスワードのセキュア検証と暗号化、監査、パスワード有効期限、最小パスワード長、不正ログイン要求が複数回行われた場合にアカウントをロックする機能などの Windows のセキュリティ機能を利用できます。

ms174927.note(ja-jp,SQL.90).gifメモ :
Analysis Services のインスタンスが匿名アクセスを許可するように構成されている場合、Windows はユーザーを認証しません。

Windows 認証と Analysis Services は次のように連携します。

  1. ユーザーが Windows ネットワークにログオンすると、Windows ドメイン コントローラがユーザーのユーザー名とパスワードを検証し、それによってユーザーのネットワーク認証資格情報を確立します。
  2. その後、ユーザーがAnalysis Services に接続しようとすると、Analysis Services は Windows ドメイン コントローラを使用してユーザーのネットワーク認証資格情報を検証します。

承認

ユーザーを認証した後、Analysis Services はそのユーザーにデータの表示、データの更新、メタデータの表示、管理タスクの実行などの権限があるかどうかを決定します。ユーザー、またはユーザーがメンバとして属するグループが Analysis Services のインスタンス内で何らかの権限を持っている場合、Analysis Services はユーザーの接続を許可します。既定では、ユーザーが Analysis Services のインスタンス内で何の権限も持っていない場合、Analysis Services はそのユーザーの接続を許可しません。

ただし、ユーザーが Analysis Services に接続した後も、承認は引き続き行われます。ユーザーがサーバーのストアド プロシージャ、データ マイニング拡張機能 (DMX) ステートメント、多次元式 (MDX) クエリ、分析管理オブジェクト (AMO) コマンドなどを実行する場合など、Analysis Services 内で作業する間も、承認は継続的に行われます。Analysis Services は、アクションを実行したり、オブジェクトにアクセスしたりする必要があるたびに、オブジェクトへのアクセスやコマンドの実行に関するユーザーの権限を検証します。ユーザーに適切な権限がない場合、Analysis Services は権限エラーを返します。

サーバー ロールとデータベース ロール

Analysis Services には、サーバー ロールとデータベース ロールの 2 種類のロールがあります。次にこれら 2 つのロールの違いを簡単に説明します。

  • サーバー ロールは 1 つのみで、このロールのメンバは Analysis Services のインスタンス内で完全な管理者権限を持ちます。
    ms174927.note(ja-jp,SQL.90).gifメモ :
    ローカル コンピュータ上の Administrators ローカル グループのメンバは、自動的に Analysis Services のインスタンスのサーバー ロールのメンバとなります。
  • データベース ロールは複数ある場合があります。サーバー ロールのメンバは、各データベース内にデータベース ロールを作成し、それらのデータベース ロールにキューブ、ディメンション、セル、マイニング構造、マイニング モデル、データ ソース オブジェクトなどに対する読み取りまたは読み取り/書き込み権限など、管理権限またはユーザー権限を与えてから、Windows ユーザーおよびグループを追加します。
    ms174927.note(ja-jp,SQL.90).gif重要 :
    ロール権限は追加式です。Windows ユーザーまたはグループが 1 つのデータベース ロールを介して持つ権限は、同じ Windows ユーザーまたはグループが他のデータベース ロールを介して持つ権限に追加されます。1 つのロールが、あるユーザーまたはグループに対して特定のタスクの実行や、特定のデータの表示の権限を拒否しても、別のロールがこれらの権限をそのユーザーまたはグループに与えた場合、ユーザーまたはグループはそのタスクの実行またはデータの表示の権限を持つことになります。

詳細情報 :Analysis Services へのアクセスの構成

管理者権限

サーバー ロールのメンバは、既に自動的に完全な管理者権限を持っていますが、データベース ロールのメンバはこの権限を持っていません。データベース ロールには、管理者権限とも呼ばれるフル コントロール権限、または次に挙げた制限付きの管理者権限を与えることができます。

  • データベースの処理
  • データベース メタデータの読み取り
  • 1 つ以上のディメンションの処理
  • 1 つ以上のディメンションの定義の読み取り
  • 1 つ以上のキューブの処理
  • 1 つ以上のキューブの定義の読み取り
  • 1 つ以上のマイニング構造の処理
  • 1 つ以上のマイニング モデルの処理
  • 1 つ以上のマイニング構造の定義の読み取り
  • 1 つ以上のマイニング モデルの定義の読み取り
  • 1 つ以上のデータ ソースの定義の読み取り

サーバー ロールのメンバと、フル コントロールを持つデータベース ロールのメンバのみが、追加の権限なしで Analysis Services データを読み取ることができます。その他のユーザーは、ディメンション、キューブ、セル、マイニング モデルなどの Analysis Services のデータ オブジェクトへの読み取りまたは読み取り/書き込み権限をデータベース ロールで明示的に与えられている場合にのみ、Analysis Services データを読み取ることができます。

詳細情報 :サーバー全体の管理権限の付与

ディメンション レベルのセキュリティ

データベース ロールは、指定されたデータベース ディメンションのディメンション メンバを表示または更新する権限があるかどうかを指定できます。さらに、データベース ロールが権限を与えられている各ディメンション内では、全ディメンション メンバではなく、特定のディメンション メンバのみを表示または更新する権限をそのロールに与えることができます。データベース ロールに特定のディメンション、一部のディメンション、またはすべてのディメンションのメンバを表示または更新する権限が与えられていない場合、データベース ロールのメンバには、ディメンションやそのメンバを表示する権限がありません。

ms174927.note(ja-jp,SQL.90).gifメモ :
データベース ディメンションを使用するキューブ内で異なる権限が明示的に与えられていない限り、データベース ロールに与えられるディメンション権限は、データベース ディメンションに基づくキューブ ディメンションに適用されます。

詳細情報 :ディメンション アクセスの許可」、「ディメンション データへのカスタム アクセス権の付与

キューブ レベルのセキュリティ

データベース ロールは、そのメンバがデータベース内の 1 つ以上のキューブに対する読み取りまたは読み取り/書き込み権限を持つかどうかを指定できます。データベースが、少なくとも 1 つのキューブに対する読み取りまたは読み取り/書き込みの権限を与えられていない場合、そのデータベース ロールのメンバは、ディメンション メンバを表示するロールを介して持っている権限にかかわりなく、そのデータベース内のキューブを表示する権限はありません。

詳細情報 :キューブ アクセスの許可

セル レベルのセキュリティ

データベース ロールは、そのメンバに、キューブ内の一部のセルまたはすべてのセルに対する Read 権限、Read Contingent 権限、Read/Write 権限のいずれを与えるかを指定できます。データベース ロールにキューブ内のセルに対する権限が与えられていない場合、そのデータベース ロールのメンバには、いずれのキューブ データも表示する権限がありません。データベース ロールが、ディメンション セキュリティに基づき特定のディメンションの表示権限を拒否された場合、セル レベルのセキュリティでは、データベース ロール メンバの権限を拡張して、そのディメンションのセル メンバを含めることはできません。一方、データベース ロールにディメンションのメンバの表示権限が与えられている場合、セル レベルのセキュリティを使用して、データベース ロール メンバが表示できるディメンションからセル メンバを制限することができます。

詳細情報 :セル データへのカスタム アクセス権の付与

マイニング構造、マイニング モデル、データ ソース セキュリティ

データベース ロールは、マイニング構造とマイニング モデルに対する読み取り権限または読み取り/書き込み権限のいずれをメンバに与えるかを指定できます。また、データベース ロールには、1 つ以上のマイニング モデルに対するソース データへのドリルスルー権限、および参照権限を与えることができます。最後に、データベース ロールには、データ ソース オブジェクトに対する読み取り/書き込み権限を与えることができます。この権限があると、ロールは OPENQUERY 句でそのデータ ソースを参照し、データ ソース オブジェクトで定義された接続文字列を使用できます。

詳細情報 :マイニング構造とマイニング モデルへのアクセスの許可」、「データ ソースへのアクセスの許可

ストアド プロシージャのセキュリティ

Analysis Services のストアド プロシージャは、Microsoft .NET プログラミング言語で書かれた外部ルーチンで、Analysis Services の機能を拡張します。ストアド プロシージャを使用すると、開発者は言語間の統合、例外処理、バージョニング サポート、配置サポート、デバッグ サポートなどを利用できます。

すべてのユーザーがストアド プロシージャを呼び出すことができます。ストアド プロシージャは、その構成方法により、プロシージャを呼び出すユーザーのコンテキスト、または匿名ユーザーのコンテキストのいずれかで実行できます。匿名ユーザーにはセキュリティ コンテキストがないため、匿名アクセスを許可するには、この機能を Analysis Services のインスタンスの構成と共に使用します。

ユーザーがストアド プロシージャを呼び出してから、Analysis Services でストアド プロシージャが実行されるまでに、Analysis Services では、ストアド プロシージャ内のアクションが評価されます。Analysis Services は、ユーザーに与えられた権限と、プロシージャの実行に使用される権限セットの共通部分に基づき、ストアド プロシージャ内のアクションを評価します。ストアド プロシージャに、ユーザーのデータベース ロールでは実行できないアクションある場合、そのアクションは実行されません。

次にストアド プロシージャの実行に使用する権限セットを示します。

  • 安全 "安全" 権限セットでは、ストアド プロシージャは Microsoft .NET Framework 内の保護されたリソースにアクセスできません。この権限セットでは、計算のみが可能です。これは最も安全な権限で、情報が Analysis Services の外に漏れることがないほか、権限が強化されるこもなく、データ改ざんの攻撃のリスクは最小化されます。
  • 外部アクセス "外部アクセス" 権限セットでは、ストアド プロシージャはマネージ コードを使用して外部リソースにアクセスできます。ストアド プロシージャをこの権限セットに設定すると、サーバー不安定の原因となるプログラミング エラーは発生しません。ただし、この権限セットは、情報がサーバーの外に漏れる結果をもたらす場合があり、権限の強化や、データ改ざんの攻撃の可能性があります。
  • 無制限 "無制限" 権限セットでは、ストアド プロシージャは任意のコードを使用して外部リソースにアクセスできます。この権限セットが指定されている場合、ストアド プロシージャに対してセキュリティも信頼性も保証されません。

詳細情報 :ストアド プロシージャを使用した作業 (Analysis Services)

暗号化

Analysis Services では、既定で、クライアント、および Analysis Services のインスタンスの間のすべての通信が暗号化される必要があります。

詳細情報 :Analysis Services インスタンスとのクライアント通信のセキュリティ保護

既定で無効の機能

Analysis Services のインスタンスは、既定でセキュリティ保護されるようにデザインされています。したがって、セキュリティを危険にさらす可能性のある機能は既定では無効になっています。次の機能は、既定では無効になっており、使用するためには有効にする必要があるものです。

  • HTTP 接続
  • トレース
  • ストアド プロシージャ
  • リモート パーティション
  • リンク オブジェクト (リンク先)
  • リンク オブジェクト (リンク元)
  • データ マイニング アグリゲータ
  • クライアント保護レベル
  • Web 保護レベル
  • 必要なクライアント認証
  • Active Directory との統合
  • アドホック OpenRowset クエリ
  • 8.0 クライアント接続
  • クラッシュ レポート

参照

概念

Analysis Services インスタンスのセキュリティ保護

その他の技術情報

Analysis Services へのアクセスの構成

ヘルプおよび情報

SQL Server 2005 の参考資料の入手