Integration Services のロールの使用
SQL ServerIntegration Services には、パッケージへのアクセスを制御するために、db_ssisadmin、db_ssisltduser、および db_ssisoperator というデータベース レベルの 3 つの固定ロールが用意されています。ロールは、SQL Server の msdb データベースに保存されるパッケージでのみ実装できます。パッケージにロールを割り当てるには、SQL Server Management Studio を使用します。ロールの割り当ては、msdb データベースに保存されます。
次の表で、Windows の読み取りおよび書き込みアクションと、Integration Services での固定データベース レベル ロールの読み取りおよび書き込みアクションについて説明します。
ロール |
読み取りアクション |
書き込みアクション |
---|---|---|
db_ssisadmin または sysadmin |
独自のパッケージを列挙する。 すべてのパッケージを列挙する。 独自のパッケージを表示する。 すべてのパッケージを表示する。 独自のパッケージを実行する。 すべてのパッケージを実行する。 独自のパッケージをエクスポートする。 すべてのパッケージをエクスポートする。 SQL Server エージェント内のすべてのパッケージを実行する。 |
パッケージをインポートする。 独自のパッケージを削除する。 すべてのパッケージを削除する。 独自のパッケージのロールを変更する。 すべてのパッケージのロールを変更する。
重要
db_ssisadmin ロールおよび dc_admin ロールのメンバは、特権を sysadmin に昇格できる可能性があります。このような特権の昇格が発生するのは、それらのロールが Integration Services パッケージを変更でき、SQL Server エージェントの sysadmin セキュリティ コンテキストを使用して SQL Server で Integration Services パッケージを実行できるためです。メンテナンス プラン、データ コレクション セット、およびその他の Integration Services パッケージの実行時にこの特権の昇格を防ぐには、特権が制限されたプロキシ アカウントを使用するようにパッケージを実行する SQL Server エージェント ジョブを構成するか、db_ssisadmin ロールおよび dc_admin ロールには sysadmin メンバのみを追加するようにします。
|
db_ssisltduser |
独自のパッケージを列挙する。 すべてのパッケージを列挙する。 独自のパッケージを表示する。 独自のパッケージを実行する。 独自のパッケージをエクスポートする。 |
パッケージをインポートする。 独自のパッケージを削除する。 独自のパッケージのロールを変更する。 |
db_ssisoperator |
すべてのパッケージを列挙する。 すべてのパッケージを表示する。 すべてのパッケージを実行する。 すべてのパッケージをエクスポートする。 SQL Server エージェント内のすべてのパッケージを実行する。 |
なし。 |
Windows 管理者 |
実行中のすべてのパッケージの実行時の詳細を表示する。 |
現在実行中のパッケージをすべて停止する。 |
msdb の sysssispackages テーブルには、SQL Server に保存されるパッケージが格納されています。詳細については、「sysssispackages (Transact-SQL)」を参照してください。
sysssispackages テーブルには、パッケージに割り当てられるロールに関する情報が含まれている列があります。
readerrole 列は、パッケージへの読み取りアクセスが可能なロールを指定します。
writerrole 列は、パッケージへの書き込みアクセスが可能なロールを指定します。
ownersid 列には、パッケージを作成したユーザーの一意なセキュリティ識別子が格納されています。この列により、パッケージの所有者が定義されます。
既定では、db_ssisadmin および db_ssisoperator の各固定データベース レベル ロールの権限、およびパッケージを作成したユーザーの一意なセキュリティ識別子は、パッケージのリーダー ロールに適用されます。db_ssisadmin ロールの権限およびパッケージを作成したユーザーの一意なセキュリティ識別子は、ライタ ロールに適用されます。ユーザーは、パッケージの読み取りアクセスを行うには db_ssisadmin、db_ssisltduser、または db_ssisoperator ロールのメンバである必要があります。書き込みアクセスを行うには db_ssisadmin ロールのメンバである必要があります。
固定データベース レベル ロールは、ユーザー定義ロールと組み合わせて使用されます。ユーザー定義ロールとは、ユーザーが SQL Server Management Studio で作成するロールのことで、権限をパッケージに割り当てるために使用します。パッケージにアクセスするには、ユーザーは、ユーザー定義ロールと Integration Services 固定データベースレベル ロールのメンバである必要があります。たとえば、ユーザーがパッケージに割り当てられている AuditUsers ユーザー定義ロールのメンバである場合、ユーザーがパッケージに対する読み取りアクセスを行うためには、さらに db_ssisadmin、db_ssisltduser、または db_ssisoperator ロールのメンバでもある必要があります。
ユーザー定義ロールをパッケージに割り当てていない場合、パッケージへのアクセスは固定データベース レベル ロールによって決定されます。
ユーザー定義ロールを使用するには、パッケージに割り当てる前に、あらかじめ msdb データベースに追加しておく必要があります。SQL Server Management Studio では、新しいデータベース ロールを作成できます。
Integration Services データベース レベルのロールは、msdb データベース内の Integration Services システム テーブルに対する権限は付与しますが、msdb データベースの sysdtspackages などのような DTS システム テーブルに対する権限は付与しません。Management Studio での DTS パッケージのインポートなど、特定の管理タスクをユーザーが実行するには、先に DTS システム テーブルに対する権限をユーザーに付与する必要があります。DTS サポートの詳細については、「SQL Server 2008 でのデータ変換サービス (DTS) のサポート」を参照してください。
手順 1 : オブジェクト エクスプローラを開き、Integration Services に接続する
SQL Server Management Studio を使用してパッケージにロールを割り当てるには、SQL Server Management Studio のオブジェクト エクスプローラを開き、Integration Services に接続する必要があります。
Integration Services サービスを起動してから、Integration Services に接続します。
オブジェクト エクスプローラを開いて Integration Services に接続するには
SQL Server Management Studio を開きます。
[表示] メニューの [オブジェクト エクスプローラ] をクリックします。
[オブジェクト エクスプローラ] のツール バーの [接続] をクリックし、[Integration Services] をクリックします。
[サーバーへの接続] ダイアログ ボックスで、サーバー名を指定します。ピリオド (.)、(local)、または localhost を使用すると、ローカル サーバーを指定できます。
[接続] をクリックします。
手順 2 : リーダー ロールおよびライタ ロールをパッケージに割り当てる
リーダー ロールおよびライタ ロールをそれぞれのパッケージに割り当てることができます。
リーダー ロールおよびライタ ロールをパッケージに割り当てる
オブジェクト エクスプローラで、Integration Services 接続を見つけます。
[格納されたパッケージ] フォルダを展開し、ロールを割り当てるパッケージが格納されているサブフォルダを展開します。
ロールを割り当てるパッケージを右クリックします。
[パッケージのロール] ダイアログ ボックスで、[リーダー ロール] ボックスの一覧からリーダー ロールを選択し、[ライタ ロール] ボックスの一覧からライタ ロールを選択します。
[OK] をクリックします。
ユーザー定義ロールの作成
データベース エンジンに接続して msdb データベースにアクセスするには、あらかじめ SQL Server (MSSQLSERVER サービス) が起動されている必要があります。
ユーザー定義ロールを作成するには
SQL Server Management Studio を開きます。
[表示] メニューの [オブジェクト エクスプローラ] をクリックします。
オブジェクト エクスプローラ ツール バーで [接続] をクリックし、[データベース エンジン] をクリックします。
[サーバーへの接続] ダイアログ ボックスで、サーバー名を指定し、認証モードを選択します。ピリオド (.)、(local)、または localhost を使用すると、ローカル サーバーを指定できます。
[接続] をクリックします。
[データベース]、[システム データベース]、[msdb]、[セキュリティ]、[ロール] を順に展開します。
[ロール] ノードの [データベース ロール] を右クリックし、[新しいデータベース ロール] をクリックします。
[全般] ページでロール名を指定します。必要に応じて、所有者および所有されているスキーマを指定し、ロール メンバを追加します。
必要に応じて、[権限] をクリックし、オブジェクトの権限を構成します。
必要に応じて、[拡張プロパティ] をクリックし、任意の拡張プロパティを構成します。
[OK] をクリックします。
|