Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Connexion à votre instance de base de données à l'aide de l'authentification IAM et de AWS SDK for .NET
Vous pouvez vous connecter à une instance de base de données RDS pour MariaDB, MySQL ou PostgreSQL avec l'AWS SDK for .NET, comme décrit ci-après.
Prérequis
Les conditions préalables à la connexion à votre instance de base de données à l'aide de l'authentification IAM sont les suivantes :
Exemples
Les exemples de code suivants montre comment générer un jeton d'authentification, puis comment l'utiliser pour se connecter à une instance de base de données.
Pour exécuter cet exemple de code, vous avez besoin de AWS SDK for .NETAWSSDK.CORE
et AWSSDK.RDS
sont requis. Pour vous connecter à un(e) instance de base de données, utilisez le connecteur de base de données .NET pour le moteur de base de données, tel que MySQLConnector pour MariaDB ou MySQL, ou Npgsql pour PostgreSQL.
Ce code se connecte à une instance de base de données MariaDB ou MySQL. Modifiez la valeur des variables suivantes selon les besoins :
-
server
– Le point de terminaison de l'instance de base de données à laquelle vous souhaitez accéder. -
user
– Le compte de base de données auquel vous souhaitez accéder. -
database
– La base de données à laquelle vous souhaitez accéder. -
port
– Le numéro du port utilisé lors de la connexion au d'instances de base de données. -
SslMode
– Le mode SSL à utiliser.Lorsque vous utilisez
SslMode=Required
, la connexion SSL vérifie le point de terminaison de l'instance de base de données par rapport au point de terminaison dans le certificat SSL. -
SslCa
– Le chemin d'accès complet au certificat SSL pour Amazon RDS
Note
Vous ne pouvez pas utiliser un enregistrement DNS Route 53 personnalisé à la place du point de terminaison de l'instance de base de données pour générer le jeton d'authentification.
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(); } } }
Ce code se connecte à une instance de base de données PostgreSQL.
Modifiez la valeur des variables suivantes selon les besoins :
-
Server
– Le point de terminaison de l'instance de base de données à laquelle vous souhaitez accéder. -
User ID
– Le compte de base de données auquel vous souhaitez accéder. -
Database
– La base de données à laquelle vous souhaitez accéder. -
Port
– Le numéro du port utilisé lors de la connexion au d'instances de base de données. -
SSL Mode
– Le mode SSL à utiliser.Lorsque vous utilisez
SSL Mode=Required
, la connexion SSL vérifie le point de terminaison de l'instance de base de données par rapport au point de terminaison dans le certificat SSL. -
Root Certificate
– Le chemin d'accès complet au certificat SSL pour Amazon RDS
Note
Vous ne pouvez pas utiliser un enregistrement DNS Route 53 personnalisé à la place du point de terminaison de l'instance de base de données pour générer le jeton d'authentification.
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(); } } }
Si vous souhaitez vous connecter à une instance de bases de données via un proxy, consultez Connexion à un proxy à l'aide de l'authentification IAM.