使用 SSIS - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 SSIS

將SSIS專案部署至 SSIS 目錄後,您可以使用 SQL Server Agent 直接從 執行套件SSMS或排程這些套件。您必須使用 Windows 驗證登入來執行SSIS套件。如需詳細資訊,請參閱為 設定 Windows 驗證使用者 SSIS

設定SSIS專案的資料庫連線管理員

當您使用連線管理員時,您可以使用下列類型的驗證:

  • 對於使用 AWS Managed Active Directory 的本機資料庫連線,您可以使用SQL身分驗證或 Windows 驗證。對於 Windows 驗證,請用 DB_instance_name.fully_qualified_domain_name 作連線字串的伺服器名稱。

    例如 myssisinstance.corp-ad.example.com,其中 myssisinstance 是資料庫執行個體名稱,而且 corp-ad.example.com 是完整網域名稱。

  • 對於遠端連線,請務必使用SQL身分驗證。

  • 對於使用自我管理 Active Directory 的本機資料庫連線,您可以使用SQL身分驗證或 Windows 驗證。對於 Windows 驗證,請使用 .LocalHost 作為連線字串的伺服器名稱。

建立SSIS代理

若要能夠使用 SQL Server Agent 排程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代理
  1. 使用下列SQL陳述式來建立代理。

    USE [msdb] GO EXEC msdb.dbo.sp_add_proxy @proxy_name=N'SSIS_Proxy',@credential_name=N'SSIS_Credential',@description=N'' GO
  2. 使用下列SQL陳述式將代理的存取權授予其他使用者。

    USE [msdb] GO EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'SSIS_Proxy',@login_name=N'mydomain\user_name' GO
  3. 使用下列SQL陳述式授予SSIS子系統對代理的存取權。

    USE [msdb] GO EXEC msdb.dbo.rds_sqlagent_proxy @task_type='GRANT_SUBSYSTEM_ACCESS',@proxy_name='SSIS_Proxy',@proxy_subsystem='SSIS' GO
在代理上檢視代理和授權
  1. 使用下列SQL陳述式來檢視代理的承授者。

    USE [msdb] GO EXEC sp_help_proxy GO
  2. 使用下列SQL陳述式來檢視子系統授予。

    USE [msdb] GO EXEC msdb.dbo.sp_enum_proxy_for_subsystem GO

使用 SQL Server Agent 排程SSIS套件

建立憑證和代理並授予代理SSIS存取權後,您可以建立 SQL Server Agent 任務來排程SSIS套件。

排程SSIS套件
  • 您可以使用 SSMS或 T-SQL 來建立 SQL Server Agent 任務。下列範例使用 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代理。

撤銷存取權並刪除代理伺服器
  1. 撤銷子系統存取權。

    USE [msdb] GO EXEC msdb.dbo.rds_sqlagent_proxy @task_type='REVOKE_SUBSYSTEM_ACCESS',@proxy_name='SSIS_Proxy',@proxy_subsystem='SSIS' GO
  2. 撤銷代理上的授權。

    USE [msdb] GO EXEC msdb.dbo.sp_revoke_login_from_proxy @proxy_name=N'SSIS_Proxy',@name=N'mydomain\user_name' GO
  3. 刪除代理。

    USE [msdb] GO EXEC dbo.sp_delete_proxy @proxy_name = N'SSIS_Proxy' GO