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 cluster tramite Autenticazione IAM e AWS SDK for .NET
Puoi connetterti a un'istanza database RDS for MariaDB, MySQL o PostgreSQL con la AWS SDK for .NET come descritto di seguito.
Prerequisiti
Di seguito sono riportati i prerequisiti per la connessione al di istanzaDB utilizzando l'autenticazione IAM:
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 codice di esempio è necessario AWS SDK for .NETAWSSDK.CORE
e AWSSDK.RDS
sono obbligatori. Per connetterti a un'istanza database, utilizza il connettore di database .NET per il motore di database, 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
Nota
Non è possibile utilizzare un record DNS Route 53 personalizzato anziché l'endpoint dell'istanza database per 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
Nota
Non è possibile utilizzare un record DNS Route 53 personalizzato anziché l'endpoint dell'istanza database per 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 proxy mediante autenticazione IAM.