Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Herstellen einer Verbindung zu Ihrem DB-Instance- mithilfe der IAM-Authentifizierung und AWS SDK for .NET
Sie können sich mit dem AWS SDK for .NET wie nachfolgend beschrieben mit einer RDS-für-MariaDB-, RDS-für-MySQL- oder RDS-für-PostgreSQL-DB-Instance verbinden.
Voraussetzungen
Die folgenden Voraussetzungen gelten für die Verbindung mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung:
Beispiele
In den folgenden Beispielcodes wird gezeigt, wie Sie ein Authentifizierungstoken erzeugen und anschließend zum Verbinden mit einer DB-Instance verwenden.
Um dieses Codebeispiel auszuführen, benötigen Sie das AWS SDK for .NETAWSSDK.CORE
- und die AWSSDK.RDS
-Pakete sind erforderlich. Um eine Verbindung mit einer DB-Instance herzustellen, verwenden Sie den .NET-Datenbankkonnektor für die DB-Engine, z. B. MySqlConnector für MariaDB oder MySQL oder Npgsql für PostgreSQL.
Dieser Code stellt eine Verbindung mit einer MariaDB- oder MySQL-DB-Instance her. Ändern Sie die Werte der folgenden Parameter nach Bedarf.
-
server
– Der Endpunkt des DB-Instance-, auf den Sie zugreifen möchten. -
user
– Das Datenbankkonto, auf das Sie zugreifen möchten. -
database
– Die Datenbank, auf die Sie zugreifen möchten. -
port
– Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird. -
SslMode
– Der zu verwendende SSL-Modus.Wenn Sie
SslMode=Required
verwenden, prüft die SSL-Verbindung den Endpunkt der DB-Instance gegen den Endpunkt des SSL-Zertifikats. -
SslCa
– Der vollständige Pfad zum SSL-Zertifikat für Amazon RDSInformationen zum Download eines Zertifikats finden Sie unter .
Anmerkung
Sie können keinen benutzerdefinierten Route-53-DNS-Eintrag anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.
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(); } } }
Dieser Code stellt eine Verbindung zu einer PostgreSQL-DB-Instance her.
Ändern Sie die Werte der folgenden Parameter nach Bedarf.
-
Server
– Der Endpunkt des DB-Instance-, auf den Sie zugreifen möchten. -
User ID
– Das Datenbankkonto, auf das Sie zugreifen möchten. -
Database
– Die Datenbank, auf die Sie zugreifen möchten. -
Port
– Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird. -
SSL Mode
– Der zu verwendende SSL-Modus.Wenn Sie
SSL Mode=Required
verwenden, prüft die SSL-Verbindung den Endpunkt der DB-Instance gegen den Endpunkt des SSL-Zertifikats. -
Root Certificate
– Der vollständige Pfad zum SSL-Zertifikat für Amazon RDSInformationen zum Download eines Zertifikats finden Sie unter .
Anmerkung
Sie können keinen benutzerdefinierten Route-53-DNS-Eintrag anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.
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(); } } }
Informationen dazu, wie Sie über einen Proxy eine Verbindung mit einer DB-Instance herstellen, finden Sie unter Herstellen einer Verbindung mit einem Proxy mithilfe der IAM-Authentifizierung.