[SQL Server] データベースのオーナー(OWNER CHANGE)を変更する方法
よくあることではないが、データベースのオーナーを変更が必要な時がある。
設定されているデータベースのオーナーがサーバーから削除されたら
そのデータベースのプロパティを開くことはできない。
様々な理由があると思うがこれからオーナーを変更する方法を説明する。
一応下記のSQLを実行して現在各データベースに設定されているオーナーを確認しよう。
データベースのオーナーを確認
SELECT A.name AS DatabaseName, B.name AS OwnerName
FROM sys.databases A
LEFT OUTER JOIN sys.server_principals B
ON A.owner_sid = B.[sid]
結果が下記のように表示される。
データベースのオーナーを変更するSQLは下記のとおりだ。
データベースのオーナーを変更するSQLクエリ
USE [変更するデータベース名]
GO
EXEC sp_changedbowner '設定するオーナーのSQL SERVER ログイン名'
GO
実習のために結果に表示されている「TestDB01」データベースのオーナーを「sa」から「user_tester」に変更してみよう。
USE [TestDB01]
GO
EXEC sp_changedbowner 'user_tester'
GO
正常に実行されたらデータベースのオーナーを確認するSQLを再度実行して
変更されたか確認してみよう。
SELECT A.name AS DatabaseName, B.name AS OwnerName
FROM sys.databases A
LEFT OUTER JOIN sys.server_principals B
ON A.owner_sid = B.[sid]
結果が下記のように表示される。
変更されている。
それではデータベースのプロパティを開いて再度確認してみよう。
所有者(オーナー)の項目に変更した「user_tester」になっていることが確認できる。