

# 连接到 Amazon RDS 数据库实例
<a name="CHAP_CommonTasks.Connect"></a>

 在连接到数据库实例之前，您必须先创建数据库实例。有关信息，请参阅 [创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)。在 Amazon RDS 预调配数据库实例后，使用标准客户端应用程序或实用程序将数据库引擎连接到数据库实例。在连接字符串中，指定数据库实例端点中的 DNS 地址作为主机参数。此外，还可以将数据库实例端点中的端口号指定为端口参数。

有关查找 Amazon RDS 数据库实例的连接信息或访问 VPC 中数据库实例的场景的更多信息，请参阅以下主题。
+ [查找 Amazon RDS 数据库实例的连接信息](CHAP_CommonTasks.Connect.EndpointAndPort.md)
+ [在 VPC 中访问数据库实例的方案](CHAP_CommonTasks.Connect.ScenariosForAccess.md)

## 使用 Amazon 驱动程序连接到数据库实例
<a name="RDS.Connecting.Drivers"></a>

借助 Amazon 驱动程序套件，可显著缩短切换和故障转移时间，并支持使用 Amazon Secrets Manager、Amazon Identity and Access Management（IAM）和联合身份进行身份验证。Amazon 驱动程序依靠监控数据库实例状态和了解实例拓扑，来确定新的主实例。这种方法将切换和故障转移时间缩短到几秒钟，而开源驱动程序的切换和故障转移时间则为几十秒。

下表列出了每个驱动程序支持的功能。随着新服务功能的推出，使用 Amazon 驱动程序套件可为这些服务功能提供内置支持。


| 功能 | [Amazon JDBC 驱动程序](https://github.com/awslabs/aws-advanced-jdbc-wrapper) | [Amazon Python 驱动程序](https://github.com/awslabs/aws-advanced-python-wrapper) | [适用于 MySQL 的 Amazon ODBC 驱动程序](https://github.com/aws/aws-mysql-odbc) | 
| --- | --- | --- | --- | 
| 失效转移支持 | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheFailoverPlugin.md) | [是](https://github.com/awslabs/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheFailoverPlugin.md)\$1 | [是](https://github.com/aws/aws-mysql-odbc/blob/main/docs/using-the-aws-driver/UsingTheAwsDriver.md#failover-process)\$1 | 
| 增强了失效转移监控功能 | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheHostMonitoringPlugin.md) | [是](https://github.com/awslabs/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheHostMonitoringPlugin.md)\$1 | [是](https://github.com/aws/aws-mysql-odbc/blob/main/docs/using-the-aws-driver/HostMonitoring.md#enhanced-failure-monitoring)\$1 | 
| 读/写分离 | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheReadWriteSplittingPlugin.md) | [是](https://github.com/awslabs/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheReadWriteSplittingPlugin.md)\$1 | 否 | 
| 驱动程序元数据连接 | [可以](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheDriverMetadataConnectionPlugin.md)。 | 不适用 | 不适用 | 
| 遥测 | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/Telemetry.md) | [是](https://github.com/aws/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/Telemetry.md)\$1 | 否 | 
| Secrets Manager | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheAwsSecretsManagerPlugin.md) | [是](https://github.com/awslabs/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheAwsSecretsManagerPlugin.md)\$1 | [是](https://github.com/aws/aws-mysql-odbc/blob/main/docs/using-the-aws-driver/UsingTheAwsDriver.md#secrets-manager-authentication)\$1 | 
| IAM 身份验证 | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheIamAuthenticationPlugin.md) | [是](https://github.com/awslabs/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheIamAuthenticationPlugin.md)\$1 | [是](https://github.com/aws/aws-mysql-odbc/blob/main/docs/using-the-aws-driver/UsingTheAwsDriver.md#iam-authentication)\$1 | 
| 联合身份验证（AD FS） | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheFederatedAuthPlugin.md) | [是](https://github.com/awslabs/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/using-plugins/UsingTheFederatedAuthenticationPlugin.md)\$1 | 否 | 
| 联合身份（Okta） | [可以](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/using-plugins/UsingTheFederatedAuthPlugin.md)。 | 否 | 否 | 
| 多可用区数据库集群 | [支持](https://github.com/awslabs/aws-advanced-jdbc-wrapper/blob/main/docs/using-the-jdbc-driver/SupportForRDSMultiAzDBCluster.md) | [是](https://github.com/aws/aws-advanced-python-wrapper/blob/main/docs/using-the-python-driver/SupportForRDSMultiAzDBCluster.md)\$1 | 否 | 

有关 Amazon 驱动程序的更多信息，请参阅 [RDS for MariaDB](MariaDB.Connecting.Drivers.md#MariaDB.Connecting.JDBCDriver)、[RDS for MySQL](MySQL.Connecting.Drivers.md#MySQL.Connecting.JDBCDriver) 或 [RDS for PostgreSQL](PostgreSQL.Connecting.JDBCDriver.md) 数据库实例的相应语言驱动程序。

**注意**  
RDS for MariaDB 支持的唯一功能是使用 Amazon Secrets Manager、Amazon Identity and Access Management（IAM）和联合身份进行身份验证。

## 连接到运行特定数据库引擎的数据库实例
<a name="CHAP_CommonTasks.Connect.DBEngine"></a>

要了解如何连接到运行特定数据库引擎的数据库实例，请按照数据库引擎的说明操作：
+ [RDS for Db2](USER_ConnectToDb2DBInstance.md)
+ [RDS for MariaDB](USER_ConnectToMariaDBInstance.md)
+ [RDS for SQL Server](USER_ConnectToMicrosoftSQLServerInstance.md)
+ [RDS for MySQL](USER_ConnectToInstance.md)
+ [RDS for Oracle](USER_ConnectToOracleInstance.md)
+ [RDS for PostgreSQL](USER_ConnectToPostgreSQLInstance.md)

## 使用 RDS Proxy 管理连接
<a name="CHAP_CommonTasks.Connect.RDSProxy"></a>

还可以使用 Amazon RDS 代理管理与 RDS for MariaDB、RDS for Microsoft SQL Server、RDS for MySQL 和 RDS for PostgreSQL 数据库实例的连接。RDS Proxy 允许应用程序池化和共享数据库连接，以提高可扩展性。有关更多信息，请参阅 [Amazon RDS 代理](rds-proxy.md)。

## 数据库身份验证选项
<a name="CHAP_CommonTasks.Connect.DatabaseAuthentication"></a>

Amazon RDS 支持以下对数据库用户进行身份验证的方法：
+ **密码身份验证** – 数据库实例将执行用户账户的所有管理。您可以使用 SQL 语句创建用户并指定密码。您可以使用的 SQL 语句取决于数据库引擎。
+ **Amazon Identity and Access Management（IAM）数据库身份验证** – 您在连接到数据库实例时无需使用密码。而是使用身份验证令牌。
+ **Kerberos 身份验证** – 使用 Kerberos 和 Microsoft Active Directory 对数据库用户进行外部身份验证。Kerberos 是一种网络身份验证协议，它使用票证和对称密钥加密，而不再需要通过网络传输密码。Kerberos 已内置到 Active Directory 中，用于在网络资源（如数据库）中对用户进行身份验证。

IAM 数据库身份验证和 Kerberos 身份验证仅适用于特定的数据库引擎和版本。

有关更多信息，请参阅“[Amazon RDS 的数据库身份验证](database-authentication.md)”。

## 加密连接
<a name="CHAP_CommonTasks.Connect.EncryptedConnections"></a>

您可以使用应用程序中的安全套接字层 (SSL) 或传输层安全 (TLS) 来加密与数据库实例的连接。每个数据库引擎都有自己的用于实施 SSL/TLS 的过程。有关更多信息，请参阅 [使用 SSL/TLS 加密与数据库实例或集群的连接](UsingWithRDS.SSL.md)。