Integration Services のロール (SSIS サービス)

適用対象: SQL Server Azure Data Factory の SSIS 統合ランタイム

SQL Server Integration Services では、SQL Server に格納されたパッケージに安全にアクセスするための固定データベース レベルの特定のロールが提供されます。 利用可能なロールは、パッケージを SSIS カタログ データベース (SSISDB) に保存するか、msdb データベースに保存するかどうかによって異なります。

SSIS カタログ データベース (SSISDB) のロール

SSIS カタログ データベース (SSISDB) は、パッケージやパッケージに関する情報に安全にアクセスするための、次の固定データベース レベルのロールを提供します。

  • ssis_admin。 このロールは、SSIS カタログ データベースに対する完全な管理アクセスを提供します。

  • ssis_logreader 。このロールは、ビュー関連のすべての SSISDB 運用ログにアクセスする権限を提供します。

    ビューの一覧には、[catalog].[projects]、[catalog].[packages]、[catalog].[operations]、[catalog].[extended_operation_info]、[catalog].[operation_messages]、[catalog].[event_messages]、[catalog].[execution_data_statistics]、[catalog].[execution_component_phases]、[catalog].[execution_data_taps]、[catalog].[event_message_context]、[catalog].[executions]、[catalog].[executables]、[catalog].[executable_statistics]、[catalog].[validations]、[catalog].[execution_parameter_values] [catalog].[execution_property_override_values] が含まれます。

仕様により、SQL Server の固定 public 役割には、ビューとストアド プロシージャに対するアクセス許可が付与されます。 このアクセス許可では、パッケージを実行または編集するためのアクセス権はユーザーに与えられず、実際のアクセス許可を決定する SSISDB の内部メカニズムを操作するためのアクセス許可のみが付与されます。

msdb データベースのロール

SQL Server Integration Servicesには、msdb データベースに保存されたパッケージへのアクセスを制御するために、db_ssisadmindb_ssisltduserdb_ssisoperator というデータベース レベルの 3 つの固定ロールが含まれています。 パッケージにロールを割り当てるには、 SQL Server Management Studioを使用します。 ロールの割り当ては、 msdb データベースに保存されます。

読み取りアクションと書き込みアクション

次の表で、Windows の読み取りおよび書き込みアクションと、 Integration Servicesでの固定データベース レベル ロールの読み取りおよび書き込みアクションについて説明します。

Role 読み取りアクション 書き込みアクション
db_ssisadmin

or

sysadmin
独自のパッケージを列挙する。

すべてのパッケージを列挙する。

独自のパッケージを表示する。

すべてのパッケージを表示する。

独自のパッケージを実行する。

すべてのパッケージを実行する。

独自のパッケージをエクスポートする。

すべてのパッケージをエクスポートする。

SQL Server エージェント内のすべてのパッケージを実行する。
パッケージをインポートする。

独自のパッケージを削除する。

すべてのパッケージを削除する。

独自のパッケージのロールを変更する。

すべてのパッケージのロールを変更する。



**** 警告 **** db_ssisadmin ロールおよび dc_admin ロールのメンバーは、特権を sysadmin に昇格できる可能性があります。 このような特権の昇格が発生するのは、それらのロールが Integration Services パッケージを変更でき、 Integration Services エージェントの sysadmin セキュリティ コンテキストを使用して SQL Server で SQL Server パッケージを実行できるためです。 メンテナンス プラン、データ コレクション セット、およびその他の Integration Services パッケージの実行時にこの特権の昇格を防ぐには、特権が制限されたプロキシ アカウントを使用するようにパッケージを実行する SQL Server エージェント ジョブを構成するか、db_ssisadmin ロールおよび dc_admin ロールには sysadmin メンバーのみを追加するようにします。
db_ssisltduser 独自のパッケージを列挙する。

すべてのパッケージを列挙する。

独自のパッケージを表示する。

独自のパッケージを実行する。

独自のパッケージをエクスポートする。
パッケージをインポートする。

独自のパッケージを削除する。

独自のパッケージのロールを変更する。
db_ssisoperator すべてのパッケージを列挙する。

すべてのパッケージを表示する。

すべてのパッケージを実行する。

すべてのパッケージをエクスポートする。

SQL Server エージェント内のすべてのパッケージを実行する。
なし
Windows 管理者 実行中のすべてのパッケージの実行時の詳細を表示する。 現在実行中のパッケージをすべて停止する。

sysssispackages テーブル

msdbsysssispackages テーブルには、 SQL Serverに保存されるパッケージが格納されています。 詳細については、「sysssispackages (Transact-SQL)」を参照してください。

sysssispackages テーブルには、パッケージに割り当てられるロールに関する情報が含まれている列があります。

  • readerrole 列は、パッケージへの読み取りアクセスが可能なロールを指定します。

  • writerrole 列は、パッケージへの書き込みアクセスが可能なロールを指定します。

  • ownersid 列には、パッケージを作成したユーザーの一意なセキュリティ識別子が格納されています。 この列により、パッケージの所有者が定義されます。

アクセス許可

既定では、 db_ssisadmin および db_ssisoperator の各固定データベース レベル ロールの権限、およびパッケージを作成したユーザーの一意なセキュリティ識別子は、パッケージのリーダー ロールに適用されます。 db_ssisadmin ロールの権限およびパッケージを作成したユーザーの一意なセキュリティ識別子は、ライター ロールに適用されます。 ユーザーは、パッケージの読み取りアクセスを行うには db_ssisadmindb_ssisltduser、または db_ssisoperator ロールのメンバーである必要があります。 書き込みアクセスを行うには db_ssisadmin ロールのメンバーである必要があります。

パッケージへのアクセス

固定データベース レベル ロールは、ユーザー定義ロールと組み合わせて使用されます。 ユーザー定義ロールとは、ユーザーが SQL Server Management Studio で作成するロールのことで、権限をパッケージに割り当てるために使用します。 パッケージにアクセスするには、ユーザーは、ユーザー定義ロールおよび関連する Integration Services 固定データベースレベル ロールのメンバーである必要があります。 たとえば、ユーザーがパッケージに割り当てられている AuditUsers ユーザー定義ロールのメンバーである場合、パッケージに対する読み取りアクセスを得るには、さらに db_ssisadmindb_ssisltduser、または db_ssisoperator ロールのメンバーでもある必要があります。

ユーザー定義ロールをパッケージに割り当てていない場合、パッケージへのアクセスは固定データベース レベル ロールによって決定されます。

ユーザー定義ロールを使用するには、パッケージに割り当てる前に、あらかじめ msdb データベースに追加しておく必要があります。 SQL Server Management Studioでは、新しいデータベース ロールを作成できます。

Integration Services データベース レベルのロールは、msdb データベース内の Integration Services システム テーブルに対する権限を付与します。

SQL Server (MSSQLSERVER サービス) は、データベース エンジンに接続して msdb データベースにアクセスするためにあらかじめ起動されている必要があります。

パッケージにロールを割り当てるには、次のタスクを完了する必要があります。

  • オブジェクト エクスプローラーを開いて Integration Services に接続する

    SQL Server Management Studioを使用してパッケージにロールを割り当てるには、 SQL Server Management Studio のオブジェクト エクスプローラーを開き、 Integration Servicesに接続する必要があります。

    Integration Services サービスを起動してから、 Integration Servicesに接続します。

  • リーダー ロールおよびライター ロールをパッケージに割り当てる

    リーダー ロールおよびライター ロールをそれぞれのパッケージに割り当てることができます。

リーダー ロールおよびライター ロールをパッケージに割り当てる

リーダー ロールおよびライター ロールをそれぞれのパッケージに割り当てることができます。

リーダー ロールおよびライター ロールをパッケージに割り当てる

  1. オブジェクト エクスプローラーで、 Integration Services 接続を見つけます。

  2. [格納されたパッケージ] フォルダーを展開し、ロールを割り当てるパッケージが格納されているサブフォルダーを展開します。

  3. ロールを割り当てるパッケージを右クリックします。

  4. [パッケージのロール] ダイアログ ボックスで、 [リーダー ロール] ボックスの一覧からリーダー ロールを選択し、 [ライター ロール] ボックスの一覧からライター ロールを選択します。

  5. [OK] をクリックします。

ユーザー定義ロールを作成する

ユーザー定義ロールを作成するには

  1. SQL Server Management Studioを開きます。

  2. [表示] メニューの [オブジェクト エクスプローラー] をクリックします。

  3. オブジェクト エクスプローラー ツール バーで [接続] をクリックし、 [データベース エンジン] をクリックします。

  4. [サーバーへの接続] ダイアログ ボックスで、サーバー名を指定し、認証モードを選択します。 ピリオド (.)、(local)、または localhost を使用すると、ローカル サーバーを指定できます。

  5. [Connect] をクリックします。

  6. [データベース]、[システム データベース]、[msdb]、[セキュリティ]、[ロール] を順に展開します。

  7. [ロール] ノードの [データベース ロール] を右クリックし、 [新しいデータベース ロール]をクリックします。

  8. [全般] ページでロール名を指定します。必要に応じて、所有者および所有されているスキーマを指定し、ロール メンバーを追加します。

  9. 必要に応じて、 [権限] をクリックし、オブジェクトの権限を構成します。

  10. 必要に応じて、 [拡張プロパティ] をクリックし、任意の拡張プロパティを構成します。

  11. [OK] をクリックします。

[パッケージのロール] ダイアログ ボックスの UI リファレンス

[パッケージのロール] SQL Server Management Studioダイアログ ボックスを使用すると、パッケージに対する読み取りアクセス権のあるデータベースレベル ロールおよびパッケージに対する書き込みアクセス権のあるデータベースレベル ロールを指定できます。 データベースレベル ロールは、SQL Server msdb データベースに格納されたパッケージにのみ適用されます。

ダイアログ ボックスに一覧表示されたロールは、 msdb システム データベースの現在のデータベース ロールです。 ロールが選択されていない場合は、既定の Integration Services ロールが適用されます。 リーダー ロールには、既定では、 db_ssisadminおよび db_ssisoperatorと、パッケージを作成したユーザーが含まれています。 ユーザーがこれらのロールのいずれかのメンバー、またはパッケージを作成したユーザーである場合は、パッケージの列挙、表示、エクスポート、および実行が可能です。 ライター ロールには、既定では、 db_ssisadmin と、パッケージを作成したユーザーが含まれています。 ユーザーがこのロールのメンバー、またはパッケージを作成したユーザーである場合は、パッケージのインポート、削除、変更を行うことができます。

sysssispackages テーブルの ownersid 列には、パッケージを作成したユーザーの一意なセキュリティ識別子が表示されます。

Options

[パッケージ名]
パッケージの名前を指定します。

[リーダー ロール]
ロールを一覧から選択します。

[ライター ロール]
ロールを一覧から選択します。