

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Connetti i server Microsoft SQL con AWS Schema Conversion Tool
<a name="CHAP_Source.SQLServer"></a>

È possibile AWS SCT utilizzarlo per convertire schemi, oggetti di codice di database e codice applicativo da SQL Server ai seguenti obiettivi: 
+ Amazon RDS per MySQL
+ Amazon Aurora edizione compatibile con MySQL
+ Amazon RDS per PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition
+ Amazon RDS per SQL Server
+ Amazon RDS per MariaDB

**Nota**  
AWS SCT non supporta l'utilizzo di Amazon RDS for SQL Server come sorgente.

È possibile utilizzare per AWS SCT creare un rapporto di valutazione per la migrazione di schemi, oggetti di codice del database e codice applicativo da SQL Server a Babelfish per Aurora PostgreSQL, come descritto di seguito.

**Topics**
+ [Privilegi per Microsoft SQL Server come origine](#CHAP_Source.SQLServer.Permissions)
+ [Utilizzo dell'autenticazione di Windows quando si utilizza Microsoft SQL Server come origine](#CHAP_Source.SQLServer.Permissions.WinAuth)
+ [Connessione a SQL Server come origine](#CHAP_Source.SQLServer.Connecting)
+ [Conversione da SQL Server a MySQL](CHAP_Source.SQLServer.ToMySQL.md)
+ [Migrazione da SQL Server a PostgreSQL con AWS Schema Conversion Tool](CHAP_Source.SQLServer.ToPostgreSQL.md)
+ [Migrazione da SQL Server ad Amazon RDS per SQL Server con AWS Schema Conversion Tool](CHAP_Source.SQLServer.ToRDSSQLServer.md)

## Privilegi per Microsoft SQL Server come origine
<a name="CHAP_Source.SQLServer.Permissions"></a>

I privilegi richiesti per Microsoft SQL Server come origine sono i seguenti: 
+ VIEW DEFINITION
+ VIEW DATABASE STATE

Il `VIEW DEFINITION` privilegio consente agli utenti con accesso pubblico di visualizzare le definizioni degli oggetti. AWS SCT utilizza il `VIEW DATABASE STATE` privilegio per verificare le funzionalità dell'edizione SQL Server Enterprise.

Ripeti l'assegnazione per ogni database di cui desideri convertire lo schema.

Inoltre, assegna i seguenti privilegi sul database `master`:
+ VIEW SERVER STATE
+ VIEW ANY DEFINITION

AWS SCT utilizza il `VIEW SERVER STATE` privilegio per raccogliere le impostazioni e la configurazione del server. Assicurati di concedere il `VIEW ANY DEFINITION` privilegio di visualizzare gli endpoint.

Per leggere le informazioni su Microsoft Analysis Services, esegui il seguente comando sul database `master`.

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

Nell'esempio precedente, sostituisci il `{{<user_name>}}` segnaposto con il nome dell'utente a cui hai concesso in precedenza i privilegi.

Per leggere informazioni su SQL Server Agent, aggiungi il tuo utente al ruolo. `SQLAgentUser` Esegui il comando seguente sul database `msdb`.

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

Nell'esempio precedente, sostituisci il segnaposto `{{<SQLAgentRole>}}` con il nome del ruolo SQL Server Agent. Sostituisci quindi il `{{<user_name>}}` segnaposto con il nome dell'utente a cui hai concesso in precedenza i privilegi. Per ulteriori informazioni, consulta [Aggiungere un utente al ruolo SQLAgent Utente](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Agent.html#SQLServerAgent.AddUser) nella *Guida per l'utente di Amazon RDS*.

Per rilevare l'invio dei log, fornisci il privilegio `SELECT on dbo.log_shipping_primary_databases` sul database `msdb`.

Per utilizzare l'approccio di notifica della replica DDL, concedi il `RECEIVE ON {{<schema_name>}}.{{<queue_name>}}` privilegio sui tuoi database di origine. In questo esempio, sostituisci il segnaposto `{{<schema_name>}}` con il nome dello schema di database. Quindi, sostituisci il segnaposto `{{<queue_name>}}` con il nome di una tabella di coda.

## Utilizzo dell'autenticazione di Windows quando si utilizza Microsoft SQL Server come origine
<a name="CHAP_Source.SQLServer.Permissions.WinAuth"></a>

Se la tua applicazione viene eseguita su un'intranet basata su Windows, puoi utilizzare l'autenticazione di Windows per l'accesso al database. Per accedere al database SQL Server, l'autenticazione di Windows utilizza l'identità Windows corrente stabilita sul thread del sistema operativo. Puoi quindi mappare l'identità Windows a un database SQL Server e alle autorizzazioni. Per connettersi a SQL Server utilizzando l'autenticazione di Windows, devi specificare l'identità Windows utilizzata dall'applicazione sta utilizzando. Inoltre, devi concedere l'accesso all'identità Windows al database SQL Server.

SQL Server prevede due modalità di accesso: modalità autenticazione di Windows e modalità mista. La modalità autenticazione di Windows abilita l'autenticazione di Windows e disabilita l'autenticazione di SQL Server. La modalità mista abilita sia l'autenticazione di Windows che l'autenticazione di SQL Server. L'autenticazione di Windows è sempre disponibile e non può essere disattivata. Per ulteriori informazioni sull'autenticazione di Windows, consulta la documentazione di Microsoft Windows. 

Di seguito è riportato un possibile esempio di creazione di un utente in TEST\_DB

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

### Utilizzo dell'autenticazione di Windows con una connessione JDBC
<a name="CHAP_Source.SQLServer.Permissions.WinAuth.JDBC"></a>

Il driver JDBC non supporta l'autenticazione di Windows se viene utilizzato su sistemi operativi diversi da Windows. Le credenziali di autenticazione di Windows, ad esempio nome utente e password, non vengono specificate automaticamente durante la connessione a SQL Server da sistemi operativi non Windows. In questi casi, le applicazioni devono invece utilizzare l'autenticazione di SQL Server.

Nella stringa di connessione a JDBC, per connettersi utilizzando l'autenticazione di Windows deve essere specificato il parametro `integratedSecurity`. Il driver JDBC supporta l'autenticazione integrata di Windows su sistemi operativi Windows tramite il parametro della stringa di connessione `integratedSecurity`.

Per utilizzare l'autenticazione integrata

1. Installa il driver JDBC.

1. Copia il file `sqljdbc_auth.dll` in una directory nel percorso di sistema di Windows sul computer in cui è installato il driver JDBC.

   I `sqljdbc_auth.dll` file vengono installati nella seguente posizione:

   <*directory di installazione*>\\sqljdbc\_<*versione*>\\<*lingua*>\\auth\\

Quando tenti di stabilire una connessione al database SQL Server utilizzando l'autenticazione di Windows, potresti ricevere l'errore "Il driver non è configurato per l'autenticazione integrata". Questo problema può essere risolto tramite le operazioni seguenti:
+ dichiarare due variabili che puntano al percorso di installazione del JDBC:

   `variable name: SQLJDBC_HOME; variable value: D:\lib\JDBC4.1\enu`(dove esiste il file sqljdbc4.jar);

  `variable name: SQLJDBC_AUTH_HOME; variable value: D\lib\JDBC4.1\enu\auth\x86`(se utilizzi un sistema operativo a 32 bit) o `D\lib\JDBC4.1\enu\auth\x64` (se utilizzi un sistema operativo a 64 bit). Qui è dove si `sqljdbc_auth.dll` trova il tuo. 
+ Copia `sqljdbc_auth.dll` nella cartella in cui JDK/JRE è in esecuzione. è possibile eseguire la copia nella cartella lib, bin, ecc. Ad esempio, è possibile copiare nella cartella seguente.

  ```
  [JDK_INSTALLED_PATH]\bin;
  [JDK_INSTALLED_PATH]\jre\bin;
  [JDK_INSTALLED_PATH]\jre\lib;
  [JDK_INSTALLED_PATH]\lib;
  ```
+ Assicurati che nella cartella della libreria JDBC sia presente solo il SQLJDBC4 file.jar. Rimuovi tutti gli altri file sqljdbc\*.jar da quella cartella (o copiali in un'altra cartella). Se stai aggiungendo il driver come parte del tuo programma, assicurati di aggiungere solo SQLJDBC4 .jar come driver da utilizzare.
+ copiare il file sqljdbc\_auth.dll nella cartella dell'applicazione.

**Nota**  
Se è in esecuzione una Java Virtual Machine (JVM) a 32 bit, utilizza il file sqljdbc\_auth.dll nella cartella x86 anche se la versione del sistema operativo è x64. Se è in esecuzione una JVM a 64 bit su un processore x64, utilizza il file sqljdbc\_auth.dll nella cartella x64.

Quando effettui la connessione a un database SQL Server, puoi scegliere **Autenticazione Windows** o **Autenticazione SQL Server** per l'opzione **Autenticazione**.

## Connessione a SQL Server come origine
<a name="CHAP_Source.SQLServer.Connecting"></a>

Utilizza la seguente procedura per connetterti al database di origine Microsoft SQL Server con AWS Schema Conversion Tool. 

**Per connettersi a un database di origine Microsoft SQL Server**

1. In AWS Schema Conversion Tool, scegli **Aggiungi fonte**.

1. Scegli **Microsoft SQL Server**, quindi scegli **Avanti**. 

   Viene visualizzata la finestra di dialogo **Aggiungi sorgente**.

1. Per **Nome connessione**, inserisci un nome per il tuo database. AWS SCT visualizza questo nome nell'albero nel pannello di sinistra. 

1. Usa le credenziali del database da Gestione dei segreti AWS o inseriscile manualmente:
   + Per utilizzare le credenziali del database di Secrets Manager, utilizzare le seguenti istruzioni:

     1. Per **AWS Secret**, scegli il nome del segreto.

     1. Scegli **Popola** per inserire automaticamente tutti i valori nella finestra di dialogo di connessione al database di Secrets Manager.

     Per informazioni sull'utilizzo delle credenziali del database da Secrets Manager, vedere[Configurazione in Gestione dei segreti AWS AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md).
   + Per inserire manualmente le informazioni sulla connessione al database di origine di Microsoft SQL Server, utilizzare le seguenti istruzioni:  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.html)

1. Scegli **Test Connection** per verificare che sia AWS SCT possibile connettersi al database di origine. 

1. Scegli **Connect** per connetterti al database di origine.