[SQL Server] データベースの所有者(OWNER CHANGE)を変更する方法

inno
2014-04-04 11:33 10763 0
[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」になっていることが確認できる。

コメント