选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用 IAM 身份验证和 AWS SDK for .NET 连接到数据库实例

聚焦模式
使用 IAM 身份验证和 AWS SDK for .NET 连接到数据库实例 - Amazon Relational Database Service

您可以使用 AWS SDK for .NET 连接到 RRDS for MariaDB、MySQL 或 PostgreSQL 数据库实例 ,如下所述。

先决条件

以下是使用 IAM 身份验证连接到数据库实例的先决条件:

示例

以下代码示例演示如何生成身份验证令牌,然后使用该令牌连接到数据库实例

要运行该代码示例,您需要使用 AWS SDK for .NET 网站上提供的 AWSAWSSDK.COREAWSSDK.RDS 程序包是必需的。要连接到数据库实例,请使用用于数据库引擎的 .NET 数据库连接器,例如 MySqlConnector for MariaDB 或 MySQL,或 Npgsql for PostgreSQL。

此代码连接到 MariaDB 或 MySQL 数据库实例。根据需要修改以下变量的值:

  • server – 要访问的数据库实例的终端节点。

  • user – 要访问的数据库账户

  • database – 要访问的数据库

  • port – 用于连接到数据库实例的端口号

  • SslMode – 要使用的 SSL 模式

    当您使用 SslMode=Required 时,SSL 连接将针对 SSL 证书中的终端节点验证数据库实例终端节点。

  • SslCaAmazon RDS 的 SSL 证书的完整路径

    要下载证书,请参阅 使用 SSL/TLS 加密与数据库实例或集群的连接

注意

您不能使用自定义 Route 53 DNS 记录代替数据库实例端点来生成身份验证令牌。

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(); } } }

此代码连接到 PostgreSQL 数据库实例。

根据需要修改以下变量的值:

  • Server – 要访问的数据库实例的终端节点。

  • User ID – 要访问的数据库账户

  • Database – 要访问的数据库

  • Port – 用于连接到数据库实例的端口号

  • SSL Mode – 要使用的 SSL 模式

    当您使用 SSL Mode=Required 时,SSL 连接将针对 SSL 证书中的终端节点验证数据库实例终端节点。

  • Root CertificateAmazon RDS 的 SSL 证书的完整路径

    要下载证书,请参阅 使用 SSL/TLS 加密与数据库实例或集群的连接

注意

您不能使用自定义 Route 53 DNS 记录代替数据库实例端点来生成身份验证令牌。

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(); } } }

如果您想通过代理连接到数据库实例,请参阅使用 IAM 身份验证连接到代理

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。