

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

Puede utilizarla AWS SCT para convertir esquemas, objetos de código de bases de datos y código de aplicaciones de SQL Server a los siguientes destinos: 
+ Amazon RDS para MySQL
+ Amazon Aurora MySQL-Compatible Edition
+ Amazon RDS para PostgreSQL
+ Edición de Amazon Aurora compatible con PostgreSQL
+ Amazon RDS para SQL Server
+ Amazon RDS para MariaDB

**nota**  
AWS SCT no admite el uso de Amazon RDS for SQL Server como fuente.

Puede utilizarlo AWS SCT para crear un informe de evaluación para la migración de esquemas, objetos de código de base de datos y código de aplicación de SQL Server a Babelfish para Aurora PostgreSQL, tal y como se describe a continuación.

**Topics**
+ [Privilegios para Microsoft SQL Server como origen](#CHAP_Source.SQLServer.Permissions)
+ [Uso de la autenticación de Windows al utilizar Microsoft SQL Server como origen](#CHAP_Source.SQLServer.Permissions.WinAuth)
+ [Conexión a SQL Server como origen](#CHAP_Source.SQLServer.Connecting)
+ [Conversión de SQL Server a MySQL](CHAP_Source.SQLServer.ToMySQL.md)
+ [Migración de SQL Server a PostgreSQL con AWS Schema Conversion Tool](CHAP_Source.SQLServer.ToPostgreSQL.md)
+ [Migración de SQL Server a Amazon RDS para SQL Server con AWS Schema Conversion Tool](CHAP_Source.SQLServer.ToRDSSQLServer.md)

## Privilegios para Microsoft SQL Server como origen
<a name="CHAP_Source.SQLServer.Permissions"></a>

Los privilegios necesarios para Microsoft SQL Server como origen son los siguientes: 
+ VIEW DEFINITION
+ VIEW DATABASE STATE

El `VIEW DEFINITION` privilegio permite a los usuarios que tienen acceso público ver las definiciones de objetos. AWS SCT utiliza el `VIEW DATABASE STATE` privilegio para comprobar las características de la edición SQL Server Enterprise.

Repita la concesión para cada base de datos cuyo esquema vaya a convertir.

Además, conceda los siguientes privilegios en la base de datos `master`:
+ VIEW SERVER STATE
+ VIEW ANY DEFINITION

AWS SCT utiliza el `VIEW SERVER STATE` privilegio para recopilar los ajustes y la configuración del servidor. Asegúrese de conceder el privilegio `VIEW ANY DEFINITION` para ver los puntos de conexión.

Para leer información sobre Microsoft Analysis Services, ejecute el siguiente comando en la base de datos `master`.

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

En el ejemplo anterior, sustituya el marcador de posición `{{<user_name>}}` por el nombre del usuario al que concedió anteriormente los privilegios.

Para leer información sobre el Agente SQL Server, agregue su usuario al rol `SQLAgentUser`. Ejecute el siguiente comando en la base de datos `msdb`.

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

En el ejemplo anterior, sustituya el marcador de posición `{{<SQLAgentRole>}}` por el nombre del rol del Agente SQL Server. A continuación, sustituya el marcador de posición `{{<user_name>}}` por el nombre del usuario al que concedió anteriormente los privilegios. Para obtener más información, consulte [Añadir un usuario al rol de SQLAgent usuario](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Agent.html#SQLServerAgent.AddUser) en la *Guía del usuario de Amazon RDS*.

Para detectar el envío de registros, conceda el privilegio `SELECT on dbo.log_shipping_primary_databases` en la base de datos de `msdb`.

Para utilizar el enfoque de notificación de la replicación del DDL, conceda el privilegio `RECEIVE ON {{<schema_name>}}.{{<queue_name>}}` en las bases de datos de origen. En este ejemplo, sustituya el marcador de posición `{{<schema_name>}}` por el nombre del esquema de la base de datos. A continuación, sustituya el marcador de posición `{{<queue_name>}}` por el nombre de una tabla de colas.

## Uso de la autenticación de Windows al utilizar Microsoft SQL Server como origen
<a name="CHAP_Source.SQLServer.Permissions.WinAuth"></a>

Si la aplicación se ejecuta en una intranet basada en Windows, es posible que pueda utilizar la autenticación de Windows para el acceso a las bases de datos. La autenticación de Windows utiliza la identidad de Windows actual establecida en el subproceso de sistema operativo para obtener acceso a la base de datos de SQL Server. A continuación, puede mapear la identidad de Windows a una base de datos de SQL Server y sus permisos. Para conectarse a SQL Server con la autenticación de Windows, debe especificar la identidad de Windows que utiliza la aplicación. También debe conceder a la identidad de Windows acceso a la base de datos de SQL Server.

SQL Server tiene dos modos de acceso: autenticación de Windows y mixto. El modo de autenticación de Windows habilita dicha autenticación y deshabilita la de SQL Server. El modo mixto habilita tanto la autenticación de Windows como la de SQL Server. La autenticación de Windows siempre está disponible y no se puede deshabilitar. Para obtener más información acerca de la autenticación de Windows, consulte la documentación de Microsoft Windows. 

El ejemplo posible para crear un usuario en TEST\_DB se muestra a continuación.

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

### Uso de la autenticación de Windows con una conexión JDBC
<a name="CHAP_Source.SQLServer.Permissions.WinAuth.JDBC"></a>

El controlador JDBC no admite la autenticación de Windows si dicho controlador se utiliza en sistemas operativos que no son de Windows. Las credenciales de autenticación de Windows, como el nombre de usuario y la contraseña, no se especifican de forma automática al conectarse a SQL Server desde sistemas operativos que no son de Windows. En estos casos, las aplicaciones deben utilizar la autenticación de SQL Server.

En la cadena de conexión de JDBC, debe especificarse el parámetro `integratedSecurity` para conectarse mediante la autenticación de Windows. El controlador JDBC admite la autenticación de Windows integrada para los sistemas operativos de Windows a través del parámetro de cadena de conexión `integratedSecurity`.

Para usar la autenticación integrada

1. Instale el controlador JDBC.

1. Copie el archivo `sqljdbc_auth.dll` en un directorio de la ruta de sistema de Windows en el equipo donde está instalado el controlador JDBC.

   Los archivos `sqljdbc_auth.dll` se instalan en la ubicación siguiente:

   <*directorio de instalación*>\\sqljdbc\_<*versión*>\\<*idioma*>\\auth\\

Cuando intenta establecer una conexión con una base de datos de SQL Server con la autenticación de Windows, es posible que aparezca este error: Este controlador no está configurado para la autenticación integrada. Este problema se puede resolver con las siguientes acciones:
+ Declare dos variables que apunten a la ruta instalada de JDBC:

   `variable name: SQLJDBC_HOME; variable value: D:\lib\JDBC4.1\enu` (donde reside su archivo sqljdbc4.jar);

  `variable name: SQLJDBC_AUTH_HOME; variable value: D\lib\JDBC4.1\enu\auth\x86` (si está ejecutando un sistema operativo de 32 bits) o `D\lib\JDBC4.1\enu\auth\x64` (si está ejecutando un sistema operativo de 64 bits). Aquí es donde reside su archivo `sqljdbc_auth.dll`. 
+ `sqljdbc_auth.dll`Cópielo a la carpeta en la que JDK/JRE se está ejecutando. Puede copiarlo en la carpeta lib, la carpeta bin, etc. Como ejemplo, es posible que copie en la siguiente carpeta.

  ```
  [JDK_INSTALLED_PATH]\bin;
  [JDK_INSTALLED_PATH]\jre\bin;
  [JDK_INSTALLED_PATH]\jre\lib;
  [JDK_INSTALLED_PATH]\lib;
  ```
+ Asegúrese de que en la carpeta de la biblioteca JDBC solo tenga el SQLJDBC4 archivo.jar. Quite otros archivos sqljdbc\*.jar de esa carpeta (o cópielos en otra carpeta). Si va a añadir el controlador como parte de su programa, asegúrese de añadir únicamente el SQLJDBC4 archivo.jar como controlador que va a utilizar.
+ Copie el archivo sqljdbc\_auth.dll en la carpeta con su aplicación.

**nota**  
Si ejecuta una máquina virtual de Java (JVM) de 32 bits, utilice el archivo sqljdbc\_auth.dll de la carpeta x86, incluso si la versión del sistema operativo es x64. Si ejecuta una JVM de 64 bits en un procesador x64, utilice el archivo sqljdbc\_auth.dll de la carpeta x64.

Al conectarse a una base de datos de SQL Server, puede elegir **Autenticación de Windows** o **Autenticación de SQL Server** en la opción **Autenticación**.

## Conexión a SQL Server como origen
<a name="CHAP_Source.SQLServer.Connecting"></a>

Utilice el siguiente procedimiento para conectarse a su base de datos Microsoft SQL Server de origen con la AWS Schema Conversion Tool. 

**Para conectarse a una base de datos de Microsoft SQL Server de origen**

1. En AWS Schema Conversion Tool, elija **Agregar fuente**.

1. Elija **Microsoft SQL Server** y, a continuación, elija **Siguiente**. 

   Se abrirá el cuadro de diálogo **Agregar origen**.

1. En **Nombre de conexión**, escriba un nombre para su base de datos. AWS SCT muestra este nombre en el árbol del panel izquierdo. 

1. Utilice las credenciales de la base de datos de AWS Secrets Manager o introdúzcalas manualmente:
   + Para usar las credenciales de base de datos de Secrets Manager, siga las instrucciones siguientes:

     1. En **Secreto de AWS**, elija el nombre del secreto.

     1. Seleccione **Rellenar** para rellenar automáticamente todos los valores del cuadro de diálogo de conexión a la base de datos de Secrets Manager.

     Para obtener información sobre el uso de las credenciales de bases de datos de Secrets Manager, consulte[Configurando AWS Secrets Manager en el AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Para introducir manualmente la información de conexión a la base de datos de origen de Microsoft SQL Server, siga las instrucciones siguientes:  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.html)

1. Elija **Probar conexión** para comprobar que AWS SCT puede conectarse a la base de datos de origen. 

1. Seleccione **Conectar** para conectarse a su base de datos de origen.