本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 IAM 身分驗證和 AWS SDK for .NET 連線至資料庫叢集
您可以如下所述使用 AWS SDK for .NET,連線至 Aurora MySQL 或 Aurora PostgreSQL 資料庫叢集。
先決條件
以下是使用 IAM 身分驗證連線至資料庫叢集的先決條件:
範例
以下程式碼範例顯示如何產生身分驗證字符,然後用來連線至資料庫叢集。
若要執行此程式碼範例,您必須從 AWS SDK for .NET 網站上取得 AWSAWSSDK.CORE
和 AWSSDK.RDS
套件是必需的。若要連接到資料庫叢集,請使用資料庫引擎的 .NET 資料庫連接器,例如 MariaDB 或 MySQL 的 MySqlConnector 或 PostgreSQL 的 Npgsql。
此程式碼連接到一個 Aurora MySQL 資料庫叢集。視需要修改下列變數的值:
-
server
– 您想要存取之資料庫叢集的端點 -
user
– 您想要存取的資料庫帳戶 -
database
– 您想要存取的資料庫 -
port
– 用於連線資料庫叢集的連接埠號碼 -
SslMode
– 要使用的 SSL 模式當您使用
SslMode=Required
時,SSL 連線會根據 SSL 憑證中的端點來驗證資料庫叢集端點。 -
SslCa
– Amazon Aurora 之 SSL 憑證的完整路徑若要下載憑證,請參閱使用 SSL/TLS 加密與資料庫叢集的連線。
注意
您無法使用自訂 Route 53 DNS 記錄或 Aurora 自訂端點替代資料庫叢集端點來產生身分驗證字符。
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, "
mysqlcluster.cluster-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=mysqlcluster.cluster-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(); } } }
此程式碼連接到一個 Aurora PostgreSQL 資料庫叢集。
視需要修改下列變數的值:
-
Server
– 您想要存取之資料庫叢集的端點 -
User ID
– 您想要存取的資料庫帳戶 -
Database
– 您想要存取的資料庫 -
Port
– 用於連線資料庫叢集的連接埠號碼 -
SSL Mode
– 要使用的 SSL 模式當您使用
SSL Mode=Required
時,SSL 連線會根據 SSL 憑證中的端點來驗證資料庫叢集端點。 -
Root Certificate
– Amazon Aurora 之 SSL 憑證的完整路徑若要下載憑證,請參閱使用 SSL/TLS 加密與資料庫叢集的連線。
注意
您無法使用自訂 Route 53 DNS 記錄或 Aurora 自訂端點替代資料庫叢集端點來產生身分驗證字符。
using System; using Npgsql; using Amazon.RDS.Util; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var pwd = RDSAuthTokenGenerator.GenerateAuthToken("
postgresmycluster.cluster-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=postgresmycluster.cluster-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(); } } }
如果要透過 Proxy 連線到資料庫叢集,請參閱 使用 IAM 身分驗證連線到代理。