ユーザー アクセス セキュリティ アーキテクチャ
Microsoft SQL Server Analysis Services は、ユーザーの認証を 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 のセキュリティ機能を利用できます。
注 |
---|
Analysis Services のインスタンスが匿名アクセスを許可するように構成されている場合、Windows はユーザーを認証しません。 |
Windows 認証と Analysis Services は次のように連携します。
ユーザーが Windows ネットワークにログオンすると、Windows ドメイン コントローラーがユーザーのユーザー名とパスワードを検証し、それによってユーザーのネットワーク認証資格情報を確立します。
その後、ユーザーが 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 のインスタンス内での完全な管理者権限があります。
注 ローカル コンピューター上の Administrators ローカル グループのメンバーは、自動的に Analysis Services のインスタンスのサーバー ロールのメンバーとなります。
データベース ロールは複数ある場合があります。サーバー ロールのメンバーは、各データベース内にデータベース ロールを作成し、それらのデータベース ロールにキューブ、ディメンション、セル、マイニング構造、マイニング モデル、データ ソース オブジェクトなどに対する読み取りまたは読み取り/書き込み権限など、管理権限またはユーザー権限を与えてから、Windows ユーザーおよびグループを追加します。
重要 ロール権限は追加式です。Windows ユーザーまたはグループが 1 つのデータベース ロールを介して持つ権限は、同じ Windows ユーザーまたはグループが他のデータベース ロールを介して持つ権限に追加されます。1 つのロールで、あるユーザーまたはグループに対して特定のタスクの実行や、特定のデータの表示の権限を拒否しても、別のロールでこれらの権限がそのユーザーまたはグループに与えられる場合、ユーザーまたはグループはそのタスクの実行またはデータの表示の権限を持つことになります。
詳細情報: 「ID およびアクセス制御 (Analysis Services - 多次元データ)」
管理者権限
サーバー ロールのメンバーは、既に自動的に完全な管理者権限を持っていますが、データベース ロールのメンバーはこの権限を持っていません。データベース ロールには、管理者権限とも呼ばれるフル コントロール権限か、次に挙げた制限付きの管理者権限を与えることができます。
データベースの処理
データベース メタデータの読み取り
1 つ以上のディメンションの処理
1 つ以上のディメンションの定義の読み取り
1 つ以上のキューブの処理
1 つ以上のキューブの定義の読み取り
1 つ以上のマイニング構造の処理
1 つ以上のマイニング モデルの処理
1 つ以上のマイニング構造の定義の読み取り
1 つ以上のマイニング モデルの定義の読み取り
1 つ以上のデータ ソースの定義の読み取り
サーバー ロールのメンバーと、フル コントロールを持つデータベース ロールのメンバーのみが、追加の権限なしで Analysis Services データを読み取ることができます。その他のユーザーは、ディメンション、キューブ、セル、マイニング モデルなどの Analysis Services のデータ オブジェクトへの読み取りまたは読み取り/書き込み権限をデータベース ロールで明示的に与えられている場合にのみ、Analysis Services データを読み取ることができます。
詳細情報: 「管理アクセス権の付与」
ディメンション レベルのセキュリティ
データベース ロールでは、指定されたデータベース ディメンションのディメンション メンバーを表示または更新する権限があるかどうかを指定できます。さらに、データベース ロールが権限を与えられている各ディメンション内では、全ディメンション メンバーではなく、特定のディメンション メンバーのみを表示または更新する権限をそのロールに与えることができます。データベース ロールに特定のディメンション、一部のディメンション、またはすべてのディメンションのメンバーを表示または更新する権限が与えられていない場合、データベース ロールのメンバーには、ディメンションやそのメンバーを表示する権限がありません。
注 |
---|
データベース ディメンションを使用するキューブ内で異なる権限が明示的に与えられていない限り、データベース ロールに与えられるディメンション権限は、データベース ディメンションに基づくキューブ ディメンションに適用されます。 |
詳細情報 :「ディメンション アクセスの許可」および「ディメンション データへのカスタム アクセス権の付与」
キューブ レベルのセキュリティ
データベース ロールでは、データベース内の 1 つ以上のキューブに対する読み取りまたは読み取り/書き込み権限をそのデータベース ロールのメンバーに与えるかどうかを指定できます。データベース ロールに、少なくとも 1 つのキューブに対する読み取りまたは読み取り/書き込みの権限が与えられていない場合、そのデータベース ロールのメンバーには、ディメンション メンバーを表示するロールを介して持っている権限にかかわりなく、そのデータベース内のキューブを表示する権限はありません。
詳細情報 : 「キューブ アクセスの許可」
セル レベルのセキュリティ
データベース ロールでは、そのメンバーに、キューブ内の一部のセルまたはすべてのセルに対する読み取権限、条件付き読み取り権限、読み取り/書き込み権限のいずれを与えるかを指定できます。データベース ロールにキューブ内のセルに対する権限が与えられていない場合、そのデータベース ロールのメンバーには、いずれのキューブ データを表示する権限もありません。データベース ロールが、ディメンション セキュリティに基づき特定のディメンションの表示権限を拒否された場合、セル レベルのセキュリティでは、データベース ロール メンバーの権限を拡張して、そのディメンションのセル メンバーを含めることはできません。一方、データベース ロールにディメンションのメンバーの表示権限が与えられている場合、セル レベルのセキュリティを使用して、データベース ロール メンバーが表示できるディメンションからセル メンバーを制限することができます。
詳細情報 : 「セル データへのカスタム アクセス権の付与」
マイニング構造、マイニング モデル、データ ソース セキュリティ
データベース ロールでは、マイニング構造とマイニング モデルに対する読み取り権限または読み取り/書き込み権限のいずれをメンバーに与えるかを指定できます。また、データベース ロールには、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 のインスタンスは、既定でセキュリティ保護されるようにデザインされています。したがって、セキュリティを損なう可能性のある機能は既定では無効になっています。次の機能は、既定では無効になっており、使用するためには有効にする必要があります。
HTTP 接続
トレース
ストアド プロシージャ
リモート パーティション
リンク オブジェクト (リンク先)
リンク オブジェクト (リンク元)
データ マイニング アグリゲーター
クライアント保護レベル
Web 保護レベル
必要なクライアント認証
Active Directory の統合
アドホック OpenRowset クエリ
8.0 クライアント接続
クラッシュ レポート