

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

# 使用 SSIS
<a name="SSIS.Use"></a>

將 SSIS 專案部署到 SSIS 目錄之後，您可以直接從 SSMS 執行套件，或使用 SQL Server 代理程式來加以排程。您必須使用 Windows 驗證的登入來執行 SSIS 套件。如需更多詳細資訊，請參閱 [為 SSIS 設定 Windows 驗證的使用者](SSIS.Permissions.md#SSIS.Use.Auth)。

**Topics**
+ [設定 SSIS 專案的資料庫連線管理員](#SSIS.Use.ConnMgrs)
+ [建立 SSIS 代理](#SSIS.Use.Proxy)
+ [使用 SQL Server 代理程式排程 SSIS 套件](#SSIS.Use.Schedule)
+ [從代理撤銷 SSIS 存取權](#SSIS.Use.Revoke)

## 設定 SSIS 專案的資料庫連線管理員
<a name="SSIS.Use.ConnMgrs"></a>

當您使用連線管理員時，您可以使用下列類型的驗證：
+ 對於使用 AWS 受管 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 代理
<a name="SSIS.Use.Proxy"></a>

若要能夠使用 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 代理**

1. 使用下面的 SQL 陳述式來建立代理。

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_add_proxy @proxy_name=N'SSIS_Proxy',@credential_name=N'SSIS_Credential',@description=N''
   GO
   ```

1. 使用下列 SQL 陳述式可將代理伺服器的存取權授予其他使用者。

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'SSIS_Proxy',@login_name=N'mydomain\user_name'
   GO
   ```

1. 使用下列 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
   ```

1. 使用下列 SQL 陳述式來檢視子系統授予。

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

## 使用 SQL Server 代理程式排程 SSIS 套件
<a name="SSIS.Use.Schedule"></a>

建立登入資料和代理，並授予 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 存取權
<a name="SSIS.Use.Revoke"></a>

您可以撤銷 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
   ```

1. 撤銷代理上的授權。

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.sp_revoke_login_from_proxy @proxy_name=N'SSIS_Proxy',@name=N'mydomain\user_name'
   GO
   ```

1. 刪除代理。

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