

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Conecte Microsoft SQL Servers com AWS Schema Conversion Tool
<a name="CHAP_Source.SQLServer"></a>

Você pode usar AWS SCT para converter esquemas, objetos de código de banco de dados e código de aplicativo do SQL Server para os seguintes destinos: 
+ Amazon RDS para MySQL
+ Amazon Aurora Edição Compatível com MySQL
+ Amazon RDS para PostgreSQL
+ Amazon Aurora Edição Compatível com PostgreSQL
+ Amazon RDS para SQL Server
+ Amazon RDS para MariaDB

**nota**  
AWS SCT não oferece suporte ao uso do Amazon RDS para SQL server como fonte.

Você pode usar AWS SCT para criar um relatório de avaliação para a migração de esquemas, objetos de código de banco de dados e código de aplicativo do SQL Server para o Babelfish para o Aurora PostgreSQL, conforme descrito a seguir.

**Topics**
+ [Privilégios do Microsoft SQL Server como origem](#CHAP_Source.SQLServer.Permissions)
+ [Usando a autenticação do Windows ao usar o Microsoft SQL Server como origem](#CHAP_Source.SQLServer.Permissions.WinAuth)
+ [Conectando-se ao SQL Server como origem](#CHAP_Source.SQLServer.Connecting)
+ [Convertendo o SQL Server em MySQL](CHAP_Source.SQLServer.ToMySQL.md)
+ [Migrando do SQL Server para o PostgreSQL com AWS Schema Conversion Tool](CHAP_Source.SQLServer.ToPostgreSQL.md)
+ [Migração do SQL Server para o Amazon RDS for SQL Server com AWS Schema Conversion Tool](CHAP_Source.SQLServer.ToRDSSQLServer.md)

## Privilégios do Microsoft SQL Server como origem
<a name="CHAP_Source.SQLServer.Permissions"></a>

Os privilégios obrigatórios para Microsoft SQL Server como origem são listados a seguir: 
+ VIEW DEFINITION
+ VIEW DATABASE STATE

O `VIEW DEFINITION` privilégio permite que usuários com acesso público vejam as definições de objetos. AWS SCT usa o `VIEW DATABASE STATE` privilégio para verificar os recursos da edição SQL Server Enterprise.

Repetir a concessão para cada banco de dados cujo esquema que você está convertendo.

Além disso, conceda os seguintes privilégios no banco de dados `master`:
+ VIEW SERVER STATE
+ VIEW ANY DEFINITION

AWS SCT usa o `VIEW SERVER STATE` privilégio para coletar as definições e configurações do servidor. Certifique-se de conceder o privilégio `VIEW ANY DEFINITION` de visualizar endpoints.

Para ler as informações sobre o Microsoft Analysis Services, execute o comando a seguir no banco de dados `master`.

```
EXEC master..sp_addsrvrolemember @loginame = N'{{<user_name>}}', @rolename = N'sysadmin'
```

No exemplo anterior, substitua o espaço reservado `{{<user_name>}}` pelo nome do usuário que você concedeu com os privilégios anteriores.

Para ler informações sobre o SQL Server Agent, adicione seu usuário ao perfil `SQLAgentUser`. Execute o comando a seguir no banco de dados `msdb`.

```
EXEC sp_addrolemember {{<SQLAgentRole>}}, {{<user_name>}};
```

No exemplo anterior, substitua o espaço reservado `{{<SQLAgentRole>}}` pelo nome do perfil do SQL Server Agent. Em seguida, substitua o espaço reservado `{{<user_name>}}` pelo nome do usuário que você concedeu com os privilégios anteriores. Para obter mais informações, consulte [Adicionar um usuário à função de SQLAgent usuário](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Agent.html#SQLServerAgent.AddUser) no *Guia do usuário do Amazon RDS*.

Para detectar o envio de logs, conceda o privilégio `SELECT on dbo.log_shipping_primary_databases` no banco de dados `msdb`.

Para usar a abordagem de notificação da replicação DDL, conceda o privilégio `RECEIVE ON {{<schema_name>}}.{{<queue_name>}}` em seus bancos de dados de origem. Neste exemplo, substitua o espaço reservado `{{<schema_name>}}` pelo nome do esquema do banco de dados. Substitua o espaço reservado `{{<queue_name>}}` pelo nome de uma tabela de filas.

## Usando a autenticação do Windows ao usar o Microsoft SQL Server como origem
<a name="CHAP_Source.SQLServer.Permissions.WinAuth"></a>

Se o seu aplicativo for executado em uma intranet baseada no Windows, você poderá usar a autenticação do Windows para acesso ao banco de dados. A autenticação do Windows usa a identidade atual do Windows estabelecida no thread do sistema operacional para acessar o banco de dados do SQL Server. Em seguida, você pode mapear a identidade do Windows para um banco de dados e para as permissões do SQL Server. Para se conectar ao SQL Server usando a autenticação do Windows, você deve especificar a identidade do Windows que seu aplicativo está usando. Também é necessário conceder o acesso de identidade do Windows ao banco de dados do SQL Server.

O SQL Server possui dois modos de acesso: modo de autenticação do Windows e modo misto. O modo de autenticação do Windows habilita a autenticação do Windows e desabilita a autenticação do SQL Server. O modo misto habilita a autenticação do Windows e a autenticação do SQL Server. A autenticação do Windows está sempre disponível e não pode ser desativada. Para obter mais informações sobre a autenticação do Windows, consulte a documentação do Microsoft Windows. 

Um possível exemplo de criação de usuário no TEST\_DB é mostrado abaixo.

```
USE [TEST_DB]
CREATE USER [TestUser] FOR LOGIN [TestDomain\TestUser]
GRANT VIEW DEFINITION TO [TestUser]
GRANT VIEW DATABASE STATE TO [TestUser]
```

### Usando a autenticação do Windows com uma conexão JDBC
<a name="CHAP_Source.SQLServer.Permissions.WinAuth.JDBC"></a>

O driver JDBC não oferece suporte à autenticação do Windows quando o driver é usado em sistemas operacionais que não sejam Windows. Credenciais de autenticação do Windows, como nome de usuário e senha, não são automaticamente especificados ao se conectar ao SQL Server a partir de sistemas operacionais que não sejam Windows. Nesses casos, os aplicativos devem usar a autenticação do SQL Server.

Na string de conexão JDBC, o parâmetro `integratedSecurity` deve ser especificado para se conectar usando a autenticação do Windows. O driver JDBC oferece suporte à autenticação integrada do Windows em sistemas operacionais Windows por meio do parâmetro de string de conexão `integratedSecurity`.

Para usar a autenticação integrada.

1. Instalar o driver de JDBC.

1. Copie o arquivo `sqljdbc_auth.dll` para um diretório no caminho do sistema Windows no computador em que o driver JDBC está instalado.

   Os arquivos `sqljdbc_auth.dll` são instalados no seguinte local:

   <*diretório de instalação*>\\sqljdbc\_<*versão*>\\<*linguagem*>\\auth\\

Ao tentar estabelecer uma conexão com o banco de dados do SQL Server usando a autenticação do Windows, você pode receber o erro: Este driver não está configurado para autenticação integrada. Esse problema pode ser resolvido executando as seguintes ações:
+ Declare duas variáveis que indicam o caminho instalado do seu JDBC:

   `variable name: SQLJDBC_HOME; variable value: D:\lib\JDBC4.1\enu` (onde seu sqljdbc4.jar existe);

  `variable name: SQLJDBC_AUTH_HOME; variable value: D\lib\JDBC4.1\enu\auth\x86` (se estiver executando um sistema operacional de 32 bits) ou `D\lib\JDBC4.1\enu\auth\x64` (se estiver executando um sistema operacional de 64 bits). É aqui que o seu `sqljdbc_auth.dll` está localizado. 
+ Copie `sqljdbc_auth.dll` para a pasta em que o seu JDK/JRE está sendo executado. Você pode copiar na pasta lib, bin, etc. Por exemplo, você pode copiar na pasta a seguir.

  ```
  [JDK_INSTALLED_PATH]\bin;
  [JDK_INSTALLED_PATH]\jre\bin;
  [JDK_INSTALLED_PATH]\jre\lib;
  [JDK_INSTALLED_PATH]\lib;
  ```
+ Certifique-se de que, na pasta da biblioteca JDBC, você tenha somente o SQLJDBC4 arquivo.jar. Remova qualquer outro arquivo sqljdbc\*.jar dessa pasta (ou copie em outra pasta). Se você estiver adicionando o driver como parte do seu programa, certifique-se de adicionar somente SQLJDBC4 o.jar como o driver a ser usado.
+ Copie o arquivo sqljdbc\_auth.dll na pasta com o aplicativo.

**nota**  
Se você estiver executando uma Java Virtual Machine (JVM) de 32 bits, use o arquivo sqljdbc\_auth.dll na pasta x86, mesmo se o sistema operacional for a versão x64. Se você estiver executando uma JVM de 64 bits em um processador x64, use o arquivo sqljdbc\_auth.dll na pasta x64.

Ao se conectar a um banco de dados do SQL Server, você pode escolher a **Autenticação do Windows** ou a **Autenticação do SQL Server** para a opção **Autenticação**.

## Conectando-se ao SQL Server como origem
<a name="CHAP_Source.SQLServer.Connecting"></a>

Use o procedimento a seguir para se conectar ao banco de dados de origem do Microsoft SQL Server com a AWS Schema Conversion Tool. 

**Para conectar-se a um banco de dados de origem do Microsoft SQL Server**

1. No AWS Schema Conversion Tool, escolha **Adicionar fonte**.

1. Escolha **Microsoft SQL Server** e, em seguida, escolha **Avançar**. 

   A caixa de diálogo **Adicionar origem** é exibida.

1. Em **Nome da conexão**, insira um nome para o banco de dados. A AWS SCT exibe esse nome na árvore no painel esquerdo. 

1. Use as credenciais do banco de dados AWS Secrets Manager ou insira-as manualmente:
   + Para usar as credenciais do banco de dados do Secrets Manager, use as instruções a seguir:

     1. Em **AWS Secret**, escolha o nome do segredo.

     1. Escolha **Preencher** para preencher automaticamente todos os valores na caixa de diálogo de conexão do banco de dados do Secrets Manager.

     Para obter informações sobre o uso de credenciais de banco de dados do Secrets Manager, consulte a [Configurando AWS Secrets Manager no AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Para inserir manualmente as informações de conexão do banco de dados de origem do Microsoft SQL Server, use as instruções a seguir:  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.html)

1. Escolha **Testar conexão** para verificar se AWS SCT pode se conectar ao seu banco de dados de origem. 

1. Escolha **Conectar** para se conectar ao banco de dados de origem.