SSIS プロジェクトを SSIS カタログにデプロイした後、SSMS から直接パッケージを実行するか、SQL Server エージェントを使用してパッケージをスケジュールできます。SSIS パッケージを実行するには、Windows 認証のログインを使用する必要があります。詳細については、「SSIS 用の Windows 認証ユーザーの設定」を参照してください。
トピック
SSIS プロジェクトのデータベース接続マネージャーの設定
接続マネージャーを使用する場合、以下のタイプの認証を使用できます。
-
AWS Managed Active Directory を使用したローカルデータベース接続の場合、SQL 認証または Windows 認証を使用できます。Windows 認証の場合、接続文字列のサーバー名として
を使用します。DB_instance_name
.fully_qualified_domain_name
例えば、
myssisinstance.corp-ad.example.com
を使用します。ここで、myssisinstance
は DB インスタンス名、corp-ad.example.com
は完全修飾ドメイン名です。 -
リモート接続の場合は、常に SQL 認証を使用します。
-
セルフマネージド Active Directory を使用したローカルデータベース接続の場合、SQL 認証または Windows 認証を使用できます。Windows 認証の場合、接続文字列のサーバー名として
または.
を使用します。LocalHost
SSIS プロキシの作成
SQL Server エージェントを使用して SSIS パッケージをスケジュールできるようにするには、SSIS 認証情報と SSIS プロキシを作成します。これらの手順を Windows 認証ユーザーとして実行します。
SSIS 認証情報を作成するには
-
プロキシの認証情報を作成します。そのためには、SSMS または以下の SQL ステートメントを使用できます。
USE [master] GO CREATE CREDENTIAL [SSIS_Credential] WITH IDENTITY = N'
mydomain
\user_name
', SECRET = N'mysecret
' GO注記
IDENTITY
はドメイン認証ログインであることが必要です。
をドメイン認証ログインのパスワードに置き換えます。mysecret
SSISDB プライマリホストが変更されるたびに、SSIS プロキシ認証情報を変更して、新しいホストがそれらのホストにアクセスできるようにします。
SSIS プロキシを作成するには
-
以下の SQL ステートメントを使用して、プロキシを作成します。
USE [msdb] GO EXEC msdb.dbo.sp_add_proxy @proxy_name=N'SSIS_Proxy',@credential_name=N'SSIS_Credential',@description=N'' GO
-
以下の SQL ステートメントを使用して、他のユーザーにプロキシへのアクセスを許可します。
USE [msdb] GO EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'SSIS_Proxy',@login_name=N'
mydomain
\user_name
' GO -
以下の SQL ステートメントを使用して、SSIS サブシステムにプロキシへのアクセスを許可します。
USE [msdb] GO EXEC msdb.dbo.rds_sqlagent_proxy @task_type='GRANT_SUBSYSTEM_ACCESS',@proxy_name='SSIS_Proxy',@proxy_subsystem='SSIS' GO
プロキシとそのプロキシに対する許可を表示するには
-
以下の SQL ステートメントを使用して、プロキシの被付与者を表示します。
USE [msdb] GO EXEC sp_help_proxy GO
-
以下の SQL ステートメントを使用して、サブシステムの許可を表示します。
USE [msdb] GO EXEC msdb.dbo.sp_enum_proxy_for_subsystem GO
SQL Server エージェントを使用した SSIS パッケージのスケジュール
認証情報とプロキシを作成し、SSIS にプロキシへのアクセスを許可したら、SQL Server エージェントジョブを作成して SSIS パッケージをスケジュールできます。
SSIS パッケージをスケジュールするには
-
SSMS または T-SQL を使用して、SQL Server エージェントジョブを作成できます。以下の例では T-SQL を使用しています。
USE [msdb] GO DECLARE @jobId BINARY(16) EXEC msdb.dbo.sp_add_job @job_name=N'MYSSISJob', @enabled=1, @notify_level_eventlog=0, @notify_level_email=2, @notify_level_page=2, @delete_level=0, @category_name=N'[Uncategorized (Local)]', @job_id = @jobId OUTPUT GO EXEC msdb.dbo.sp_add_jobserver @job_name=N'MYSSISJob',@server_name=N'(local)' GO EXEC msdb.dbo.sp_add_jobstep @job_name=N'MYSSISJob',@step_name=N'ExecuteSSISPackage', @step_id=1, @cmdexec_success_code=0, @on_success_action=1, @on_fail_action=2, @retry_attempts=0, @retry_interval=0, @os_run_priority=0, @subsystem=N'SSIS', @command=N'/ISSERVER "\"\SSISDB\MySSISFolder\MySSISProject\MySSISPackage.dtsx\"" /SERVER "\"my-rds-ssis-instance.corp-ad.company.com/\"" /Par "\"$ServerOption::LOGGING_LEVEL(Int16)\"";1 /Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";True /CALLERINFO SQLAGENT /REPORTING E', @database_name=N'master', @flags=0, @proxy_name=N'SSIS_Proxy' GO
プロキシからの SSIS アクセスの取り消し
以下のストアドプロシージャを使用して、SSIS サブシステムへのアクセスを取り消し、SSIS プロキシを削除できます。
アクセスを取り消してプロキシを削除するには
-
サブシステムのアクセスを取り消します。
USE [msdb] GO EXEC msdb.dbo.rds_sqlagent_proxy @task_type='REVOKE_SUBSYSTEM_ACCESS',@proxy_name='SSIS_Proxy',@proxy_subsystem='SSIS' GO
-
プロキシに対する許可を取り消します。
USE [msdb] GO EXEC msdb.dbo.sp_revoke_login_from_proxy @proxy_name=N'SSIS_Proxy',@name=N'
mydomain
\user_name
' GO -
プロキシを削除します。
USE [msdb] GO EXEC dbo.sp_delete_proxy @proxy_name = N'SSIS_Proxy' GO