

# Usar o SSIS
<a name="SSIS.Use"></a>

Depois de implantar o projeto do SSIS no catálogo do SSIS, você pode executar pacotes diretamente do SSMS ou programá-los usando o SQL Server Agent. Você deve usar um login autenticado pelo Windows para executar pacotes do SSIS. Para obter mais informações, consulte [Configurar um usuário autenticado pelo Windows para o SSIS](SSIS.Permissions.md#SSIS.Use.Auth).

**Topics**
+ [Definir gerenciadores de conexão de banco de dados para projetos do SSIS](#SSIS.Use.ConnMgrs)
+ [Criar um proxy do SSIS](#SSIS.Use.Proxy)
+ [Programar um pacote do SSIS usando o SQL Server Agent](#SSIS.Use.Schedule)
+ [Revogar o acesso do SSIS do proxy](#SSIS.Use.Revoke)

## Definir gerenciadores de conexão de banco de dados para projetos do SSIS
<a name="SSIS.Use.ConnMgrs"></a>

Ao utilizar um gerenciador de conexões, você pode usar estes tipos de autenticação:
+ Para conexões de banco de dados local usando o AWS Managed Active Directory, você pode usar autenticação do SQL ou autenticação do Windows. Para autenticação do Windows, use `DB_instance_name.fully_qualified_domain_name` como o nome do servidor da string de conexão.

  Um exemplo é `myssisinstance.corp-ad.example.com`, onde `myssisinstance` é o nome da instância de banco de dados e `corp-ad.example.com` é o nome de domínio totalmente qualificado.
+ Para conexões remotas, use sempre a autenticação do SQL.
+ Para conexões de banco de dados local usando um Active Directory autogerenciado, você pode usar autenticação do SQL ou autenticação do Windows. Para autenticação do Windows, use `.` ou `LocalHost` como o nome do servidor da string de conexão.

## Criar um proxy do SSIS
<a name="SSIS.Use.Proxy"></a>

Para poder agendar pacotes do SSIS usando o SQL Server Agent, crie uma credencial do SSIS e um proxy do SSIS. Execute esses procedimentos como um usuário autenticado pelo Windows.

**Como criar a credencial do SSIS**
+ Crie a credencial para o proxy. Para fazer isso, você pode usar o SSMS ou a seguinte instrução SQL.

  ```
  USE [master]
  GO
  CREATE CREDENTIAL [SSIS_Credential] WITH IDENTITY = N'mydomain\user_name', SECRET = N'mysecret'
  GO
  ```
**nota**  
`IDENTITY` deve ser um login autenticado por domínio. Substitua `mysecret` pela senha do login autenticado por domínio.  
Sempre que o host primário do SSISDB for alterado, altere as credenciais de proxy do SSIS para permitir que o novo host as acesse.

**Como criar o proxy do SSIS**

1. Use a seguinte instrução SQL para criar o proxy.

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

1. Use a seguinte instrução SQL para conceder acesso ao proxy para outros usuários.

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

1. Use a seguinte instrução SQL para dar ao subsistema do SSIS acesso ao proxy.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.rds_sqlagent_proxy @task_type='GRANT_SUBSYSTEM_ACCESS',@proxy_name='SSIS_Proxy',@proxy_subsystem='SSIS'
   GO
   ```

**Como visualizar o proxy e as concessões no proxy**

1. Use a seguinte instrução SQL para visualizar os beneficiários do proxy.

   ```
   USE [msdb]
   GO
   EXEC sp_help_proxy
   GO
   ```

1. Use a seguinte instrução SQL para visualizar as concessões do subsistema.

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

## Programar um pacote do SSIS usando o SQL Server Agent
<a name="SSIS.Use.Schedule"></a>

Depois de criar a credencial e proxy e conceder ao SSIS acesso ao proxy, você pode criar um trabalho do SQL Server Agent para programar o pacote do SSIS.

**Como programar o pacote do SSIS**
+ Você pode usar SSMS ou T-SQL para criar o trabalho do SQL Server Agent. O exemplo a seguir usa 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
  ```

## Revogar o acesso do SSIS do proxy
<a name="SSIS.Use.Revoke"></a>

Você pode revogar o acesso ao subsistema do SSIS e excluir o proxy do SSIS usando os seguintes procedimentos armazenados.

**Como revogar o acesso e excluir o proxy**

1. Revogue o acesso ao subsistema.

   ```
   USE [msdb]
   GO
   EXEC msdb.dbo.rds_sqlagent_proxy @task_type='REVOKE_SUBSYSTEM_ACCESS',@proxy_name='SSIS_Proxy',@proxy_subsystem='SSIS'
   GO
   ```

1. Revogue as concessões no proxy.

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

1. Exclua o proxy.

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