将 Amazon RDS for SQL Server 数据库的 db_owner
更改为 rdsa
账户
当您在 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
存储过程并提供数据库的名称。
例 用法:
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_owner 角色成员资格。