Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menghubungkan ke instans DB Anda menggunakan autentikasi IAM dan AWS SDK for .NET
Anda dapat menghubungkan ke instans DB RDS for MariaDB, MySQL, atau PostgreSQL dengan AWS SDK for .NET seperti yang dijelaskan berikut ini.
Prasyarat
Berikut adalah prasyarat untuk menghubungkan ke instans DB menggunakan autentikasi IAM:
Contoh
Contoh kode berikut ini menunjukkan cara membuat token autentikasi, lalu menggunakannya untuk terhubung ke instans DB.
Untuk menjalankan contoh kode ini, Anda memerlukan AWS SDK for .NETAWSSDK.CORE
dan AWSSDK.RDS
diperlukan. Untuk terhubung ke instans DB, gunakan konektor basis data .NET untuk mesin DB, seperti MySqlConnector for MariaDB atau MySQL, atau Npgsql for PostgreSQL.
Kode ini terhubung ke instans DB MariaDB MySQL. Ubah nilai variabel berikut sesuai kebutuhan:
-
server
– Titik akhir instans DB yang ingin Anda akses -
user
– Akun basis data yang ingin Anda akses -
database
– Basis data yang ingin Anda akses -
port
– Nomor port yang digunakan untuk menghubungkan ke instans DB Anda -
SslMode
– Mode SSL yang akan digunakanSaat Anda menggunakan
SslMode=Required
, koneksi SSL memverifikasi titik akhir instans DB di sertifikat SSL. -
SslCa
– Jalur lengkap ke sertifikat SSL untuk Amazon RDS
catatan
Anda tidak dapat menggunakan catatan DNS Route 53 kustom sebagai pengganti titik akhir instans DB untuk menghasilkan token autentikasi.
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(); } } }
Kode ini terhubung ke instans DB PostgreSQL.
Ubah nilai variabel berikut sesuai kebutuhan:
-
Server
– Titik akhir instans DB yang ingin Anda akses -
User ID
– Akun basis data yang ingin Anda akses -
Database
– Basis data yang ingin Anda akses -
Port
– Nomor port yang digunakan untuk menghubungkan ke instans DB Anda -
SSL Mode
– Mode SSL yang akan digunakanSaat Anda menggunakan
SSL Mode=Required
, koneksi SSL memverifikasi titik akhir instans DB di sertifikat SSL. -
Root Certificate
– Jalur lengkap ke sertifikat SSL untuk Amazon RDS
catatan
Anda tidak dapat menggunakan catatan DNS Route 53 kustom sebagai pengganti titik akhir instans DB untuk menghasilkan token autentikasi.
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(); } } }
Jika Anda ingin terhubung ke instans DB melalui proksi, lihat Terhubung ke sebuah proksi menggunakan autentikasi IAM.