sp_changedbowner (Transact-SQL)
現在のデータベースの所有者を変更します。
構文
sp_changedbowner [ @loginame = ] 'login'
[ , [ @map= ] remap_alias_flag ]
引数
- [ @loginame= ] 'login'
現在のデータベースの新しい所有者のログイン ID を指定します。login のデータ型は sysname で、既定値はありません。login は既に存在する SQL Server ログインまたは Microsoft Windows ユーザーであることが必要です。login は、現在のデータベース内に別名またはユーザー セキュリティ アカウントがあり、既にデータベースへのアクセス権が与えられている場合、データベースの所有者になることはできません。この問題を回避するには、先に現在のデータベース内の別名またはユーザーを削除してください。
- [ @map= ] remap_alias_flag
値 true または false を指定します。これは、以前のデータベース所有者 (dbo) に割り当てられている既存の別名を、現在のデータベースの新しい所有者にマップするか削除するかを表します。remap_alias_flag のデータ型は varchar(5) で、既定値は NULL です。既定値の場合、以前の dbo に割り当てられていた別名は現在のデータベースの新しい所有者にマップされます。false の場合、以前のデータベース所有者に割り当てられていた別名は削除されます。
リターン コードの値
0 (成功) または 1 (失敗)
解説
sp_changedbowner を実行した後、新しい所有者はデータベース内で dbo ユーザーとして認識されるようになります。dbo には、データベース内ですべての操作を実行できる権限が暗黙的に与えられます。
master、model、または tempdb システム データベースの所有者を変更することはできません。
有効な login 値の一覧を表示するには、sp_helplogins ストアド プロシージャを実行します。
sp_changedbowner に login パラメータだけを指定して実行すると、データベースの所有者は login に代わり、以前 dbo に割り当てられていたユーザーの別名はこの新しいデータベース所有者にマップされます。
セキュリティ保護可能なリソースの所有者は、ALTER AUTHORIZATION ステートメントを使用して変更できます。詳細については、「ALTER AUTHORIZATION (Transact-SQL)」を参照してください。
権限
サーバーに対する TAKE OWNERSHIP 権限が必要です。新しい所有者に対応するユーザーがデータベース内に存在する場合は、ログインに対する IMPERSONATE 権限が必要です。存在しない場合は、サーバーに対する CONTROL SERVER 権限が必要です。
例
次の例では、ログイン Albert
を現在のデータベースの所有者とし、以前のデータベース所有者に割り当てられていた別名を Albert
にマップします。
EXEC sp_changedbowner 'Albert'
参照
関連項目
セキュリティ ストアド プロシージャ (Transact-SQL)
CREATE DATABASE (Transact-SQL)
sp_dropalias (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helpdb (Transact-SQL)
sp_helplogins (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)