

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à.

# Connessione al di istanze DB utilizzando l'autenticazione IAM e AWS SDK per .NET
<a name="UsingWithRDS.IAMDBAuth.Connecting.NET"></a>

È possibile connettersi a un cluster RDS per MariaDB, MySQL o PostgreSQL DB con Aurora MySQL o DB come descritto di seguito. AWS SDK per .NET 

**Prerequisiti**  
Di seguito sono riportati i prerequisiti per la connessione al di istanzaDB utilizzando l’autenticazione IAM:
+ [Abilitazione e disabilitazione dell’autenticazione database IAM](UsingWithRDS.IAMDBAuth.Enabling.md)
+ [Creazione e utilizzo di una policy IAM per l'accesso al database IAM](UsingWithRDS.IAMDBAuth.IAMPolicy.md)
+ [Creazione di un account database tramite l’autenticazione IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md)

**Esempi**  
Il seguente esempio di codice mostra come generare un token di autenticazione e utilizzarlo per eseguire la connessione a un'istanza del database.

Per eseguire questo esempio di codice, è necessario il file, trovato sul sito. [AWS SDK per .NET](https://aws.amazon.com/sdk-for-net/) AWS I pacchetti `AWSSDK.CORE` e `AWSSDK.RDS` sono obbligatori. Per connetterti a un di istanze DB, usa il connettore di database.NET per il motore DB, ad esempio MySqlConnector per MariaDB o MySQL, o Npgsql per PostgreSQL.

Questo codice si connette a un'istanza database MariaDB o MySQL. Modifica i valori delle variabili seguenti in base alle esigenze.
+ `server`: l'endpoint dell'istanza database cui vuoi accedere
+ `user` – L'account database cui vuoi accedere.
+ `database` – Database a cui accedere.
+ `port` – Numero di porta usato per la connessione al cluster
+ `SslMode` – Modalità SSL da utilizzare.

  Quando si utilizza `SslMode=Required`, la connessione SSL verifica l'endpoint dell'istanza database rispetto a quello nel certificato SSL.
+ `SslCa` - Percorso completo del certificato SSL per Amazon RDS

  Per scaricare un certificato, consultare [](UsingWithRDS.SSL.md).

**Nota**  
Non è possibile utilizzare un record DNS Route 53 personalizzato anziché l'endpoint dell'istanza databaseper generare il token di autenticazione.

```
using System;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
using Amazon;

namespace ubuntu
{
  class Program
  {
    static void Main(string[] args)
    {
      var pwd = Amazon.RDS.Util.RDSAuthTokenGenerator.GenerateAuthToken(RegionEndpoint.USEast1, "mysqldb.123456789012.us-east-1.rds.amazonaws.com", 3306, "jane_doe");
      // for debug only Console.Write("{0}\n", pwd);  //this verifies the token is generated

      MySqlConnection conn = new MySqlConnection($"server=mysqldb.123456789012.us-east-1.rds.amazonaws.com;user=jane_doe;database=mydB;port=3306;password={pwd};SslMode=Required;SslCa=full_path_to_ssl_certificate");
      conn.Open();

      // Define a query
      MySqlCommand sampleCommand = new MySqlCommand("SHOW DATABASES;", conn);

      // Execute a query
      MySqlDataReader mysqlDataRdr = sampleCommand.ExecuteReader();

      // Read all rows and output the first column in each row
      while (mysqlDataRdr.Read())
        Console.WriteLine(mysqlDataRdr[0]);

      mysqlDataRdr.Close();
      // Close connection
      conn.Close();
    }
  }
}
```

Questo codice si connette a un'istanza database PostgreSQL.

Modifica i valori delle variabili seguenti in base alle esigenze.
+ `Server`: l'endpoint dell'istanza database cui vuoi accedere
+ `User ID` – L'account database cui vuoi accedere.
+ `Database` – Database a cui accedere.
+ `Port` – Numero di porta usato per la connessione al cluster
+ `SSL Mode` – Modalità SSL da utilizzare.

  Quando si utilizza `SSL Mode=Required`, la connessione SSL verifica l'endpoint dell'istanza database rispetto a quello nel certificato SSL.
+ `Root Certificate` - Percorso completo del certificato SSL per Amazon RDS

  Per scaricare un certificato, consultare [](UsingWithRDS.SSL.md).

**Nota**  
Non è possibile utilizzare un record DNS Route 53 personalizzato anziché l'endpoint dell'istanza databaseper generare il token di autenticazione.

```
using System;
using Npgsql;
using Amazon.RDS.Util;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var pwd = RDSAuthTokenGenerator.GenerateAuthToken("postgresmydb.123456789012.us-east-1.rds.amazonaws.com", 5432, "jane_doe");
// for debug only Console.Write("{0}\n", pwd);  //this verifies the token is generated

            NpgsqlConnection conn = new NpgsqlConnection($"Server=postgresmydb.123456789012.us-east-1.rds.amazonaws.com;User Id=jane_doe;Password={pwd};Database=mydb;SSL Mode=Require;Root Certificate=full_path_to_ssl_certificate");
            conn.Open();

            // Define a query
                   NpgsqlCommand cmd = new NpgsqlCommand("select count(*) FROM pg_user", conn);

            // Execute a query
            NpgsqlDataReader dr = cmd.ExecuteReader();

            // Read all rows and output the first column in each row
            while (dr.Read())
                Console.Write("{0}\n", dr[0]);

            // Close connection
            conn.Close();
        }
    }
}
```

Se desideri connetterti a un’istanza database tramite un proxy, consulta [Connessione a un database tramite l'autenticazione IAM](rds-proxy-connecting.md#rds-proxy-connecting-iam).