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

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

コメント