在域中管理数据库实例 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在域中管理数据库实例

您可以使用控制台、CLI 或 RDS API 来管理您的数据库实例及其与 Microsoft Active Directory 的关系。例如,您可以关联 Microsoft Active Directory 以启用 Kerberos 身份验证。您也可以取消 Microsoft Active Directory 的关联以禁用 Kerberos 身份验证。您也可以将由一个 Microsoft Active Directory 在外部进行身份验证的数据库实例移动到另一个 Active Directory。

例如,使用 CLI,您可以执行下列操作:

  • 要重新尝试为失败的成员启用 Kerberos 身份验证,请使用 modify-db-instance CLI 命令并为 --domain 选项指定当前成员的目录 ID。

  • 要禁用数据库实例上的 Kerberos 身份验证,请使用 modify-db-instance CLI 命令并为 none 选项指定 --domain

  • 要将数据库实例从一个域移至另一个域,请使用 modify-db-instance CLI 命令并为 --domain 选项指定新域的域标识符。

查看域成员资格的状态

在创建或修改数据库实例后,数据库实例将成为域的成员。您可以在控制台中查看数据库实例的域成员身份状态,也可以通过运行 describe-db-instances CLI 命令来查看。数据库实例的状态可以是以下状态之一:

  • kerberos-enabled – 数据库实例已启用 Kerberos 身份验证。

  • enabling-kerberos – Amazon是在此数据库实例上启用 Kerberos 身份验证的过程。

  • pending-enable-kerberos – 启用 Kerberos 身份验证正在此数据库实例上等待处理。

  • pending-maintenance-enable-kerberos – Amazon将尝试在下一个计划的维护时段在数据库实例上启用 Kerberos 身份验证。

  • pending-disable-kerberos – 禁用 Kerberos 身份验证正在此数据库实例上等待处理。

  • pending-maintenance-disable-kerberos – Amazon将尝试在下一个计划的维护时段在数据库实例上禁用 Kerberos 身份验证。

  • enable-kerberos-failed – 出现一个配置问题,导致Amazon无法在数据库实例上启用 Kerberos 身份验证。在重新发出命令以修改数据库实例之前纠正配置问题。

  • disabling-kerberos – Amazon是在此数据库实例上启用 Kerberos 身份验证的过程。

启用 Kerberos 身份验证的请求可能因网络连接问题或不正确的 IAM 角色而失败。如果在创建或修改数据库实例时尝试启用 Kerberos 身份验证失败,请确保您使用的是正确的 IAM 角色。然后修改数据库实例以加入域。

注意

只有对 Amazon RDS for Oracle 进行 Kerberos 身份验证才会将流量发送到域的 DNS 服务器。所有其他 DNS 请求被视为对运行 Oracle 的数据库实例进行出站网络访问。有关 Amazon RDS for Oracle 出站网络访问的更多信息,请参阅设置自定义 DNS 服务器

强制轮换 Kerberos 密钥

私有密钥是在 Amazon Managed Microsoft AD 和 Amazon RDS for Oracle 数据库实例之间共享的。该密钥每 45 天自动轮换一次。您可以使用以下 Amazon RDS 过程强制轮换该密钥:

SELECT rdsadmin.rdsadmin_kerberos_auth_tasks.rotate_kerberos_keytab AS TASK_ID FROM DUAL;
注意

在只读副本配置中,只能在源数据库实例上使用该过程,而不能在只读副本上使用该过程。

SELECT 语句返回 VARCHAR2 数据类型的任务 ID。您可以查看 bdump 文件中的持续任务的状态。bdump 文件位于 /rdsdbdata/log/trace 目录下。每个 bdump 文件名称格式如下。

dbtask-task-id.log

您可以通过显示任务的输出文件来查看结果。

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));

task-id 替换为由此过程返回的任务 ID。

注意

任务以异步方式执行。