db_owner の Amazon RDS for SQL Server データベースの rdsa アカウントへの変更 - Amazon Relational Database Service

db_owner の Amazon RDS for SQL Server データベースの rdsa アカウントへの変更

RDS for SQL Server DB インスタンスでデータベースを作成または復元すると、Amazon RDS はデータベースの所有者を rdsa に設定します。マルチ AZ 配置で SQL Server データベースミラーリング (DBM) または Always On 可用性グループ (AG) を使用している場合、Amazon RDS はセカンダリ DB インスタンスのデータベースの所有者を NT AUTHORITY\SYSTEM に設定します。セカンダリ DB インスタンスがプライマリロールに昇格されるまで、セカンダリデータベースの所有者を変更することはできません。ほとんどの場合、クエリの実行時にデータベースの所有者を 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 ロールメンバーシップのリセット」を参照してください。