Connexion à votre d’instances de base de données à l'aide de l'authentification IAM et de Kit AWS SDK pour .NET - Amazon Relational Database Service

Connexion à votre d’instances de base de données à l'aide de l'authentification IAM et de Kit AWS SDK pour .NET

Vous pouvez vous connecter à une instance de base de données Amazon RDS MySQL ou PostgreSQL avec Kit AWS SDK pour .NET comme décrit ci-après.

Les conditions préalables à la connexion à votre instance de base de données à l'aide de l'authentification IAM sont les suivantes :

L'exemple de code suivant montre comment créer un jeton d'authentification, puis l'utiliser pour se connecter à un d’instances de base de données.

Pour exécuter cet exemple de code, vous avez besoin de Kit AWS SDK pour .NET, disponible sur le site AWS. Les paquets AWSSDK.CORE et AWSSDK.RDS sont requis. Pour vous connecter à une 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 MySQL ou Npgsql pour PostgreSQL.

Modifiez la valeur des variables suivantes selon les besoins :

  • server – Le point de terminaison du d’instances de base de données auquel vous souhaitez accéder.

  • port – Le numéro du port utilisé lors de la connexion au d’instances de base de données.

  • user – Le compte de base de données auquel vous souhaitez accéder.

Ce code se connecte à une instance de base de données MySQL.

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=../rds-ca-2019-root.pem"); 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.

using System; using Npgsql; using Amazon.RDS.Util; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var pwd = RDSAuthTokenGenerator.GenerateAuthToken("postgresqldb.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=postgresqldb.123456789012.us-east-1.rds.amazonaws.com;User Id=jane_doe;Password={pwd};Database=mydb;SSL Mode=Require;Trust Server Certificate=true;"); 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(); } } }