

# 将 Amazon RDS for SQL Server 数据库的 `db_owner` 更改为 `rdsa` 账户
<a name="Appendix.SQLServer.CommonDBATasks.ChangeDBowner"></a>

当您在 RDS for SQL Server 数据库实例中创建或还原数据库时，Amazon RDS 会将该数据库的所有者设置为 `rdsa`。如果您使用 SQL Server 数据库镜像（DBM）或 Always On 可用性组（AG）进行多可用区部署，Amazon RDS 会将辅助数据库实例上的数据库所有者设置为 `NT AUTHORITY\SYSTEM`。在辅助数据库实例提升为主角色之前，无法更改辅助数据库的所有者。在大多数情况下，在执行查询时将数据库的所有者设置为 `NT AUTHORITY\SYSTEM` 不会出现问题，但在执行系统存储过程（例如，需要提升权限才能执行的 `sys.sp_updatestats`）时，可能会引发错误。

您可以使用以下查询来识别 `NT AUTHORITY\SYSTEM` 所拥有的数据库的所有者：

```
SELECT name FROM sys.databases WHERE SUSER_SNAME(owner_sid) = 'NT AUTHORITY\SYSTEM';
```

您可以使用 Amazon RDS 存储过程 `rds_changedbowner_to_rdsa` 将数据库的所有者更改为 `rdsa`。不允许将以下数据库与 `rds_changedbowner_to_rdsa` 一起使用：`master, model, msdb, rdsadmin, rdsadmin_ReportServer, rdsadmin_ReportServerTempDB, SSISDB`。

要将数据库的所有者更改为 `rdsa`，请调用 `rds_changedbowner_to_rdsa` 存储过程并提供数据库的名称。

**Example 用法：**  

```
exec msdb.dbo.rds_changedbowner_to_rdsa 'TestDB1';
```

以下参数是必需参数：
+ `@db_name` – 要将数据库所有者更改为 `rdsa` 的数据库的名称。

**重要**  
您不能使用 `rds_changedbowner_to_rdsa` 将数据库的所有权更改为 `rdsa` 之外的登录名。例如，您不能将所有权更改为您创建数据库时所用的登录名。当没有其他数据库用户可用于授予成员资格时，要在 `db_owner` 角色中还原主用户丢失的成员资格，请重置主用户密码来在 `db_owner` 角色中获取成员资格。有关更多信息，请参阅 [重置 Amazon RDS for SQL Server 主用户的 db\$1owner 角色成员资格](Appendix.SQLServer.CommonDBATasks.ResetPassword.md)。