sp_changedbowner (Transact-SQL)

適用対象:SQL Server

現在のデータベースの所有者を変更します。

重要

この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに ALTER AUTHORIZATION を使用してください。

Transact-SQL 構文表記規則

構文

  
sp_changedbowner [ @loginame = ] 'login'  
     [ , [ @map = ] remap_alias_flag ]  

引数

[ @loginame= ] 'login'
現在のデータベースの新しい所有者のログイン ID を指定します。 loginsysname で、既定値はありません。 ログイン は、既存の SQL Server ログインまたは Windows ユーザーである必要があります。 ログイン は、データベース内の既存のユーザー セキュリティ アカウントを介してデータベースに既にアクセスできる場合、現在のデータベースの所有者になることができません。 この問題を回避するには、先に現在のデータベース内のユーザーを削除してください。

[ @map= ] remap_alias_flag
ログイン エイリアスが SQL Server から削除されたため、remap_alias_flag パラメーターは非推奨です。 remap_alias_flag パラメーターを使用してもエラーは発生しませんが、影響はありません。

リターン コードの値

0 (成功) または 1 (失敗)

解説

sp_changedbownerが実行されると、新しい所有者はデータベース内の dbo ユーザーと呼ばれます。 dbo には、データベース内のすべてのアクティビティを実行するための暗黙的なアクセス許可があります。

マスター、モデル、または tempdb システム データベースの所有者は変更できません。

有効な ログイン 値の一覧を表示するには、sp_helplogins ストアド プロシージャを実行します。

ログイン パラメーターのみを使用してsp_changedbownerを実行すると、データベースの所有権がログインに変更されます

ALTER AUTHORIZATION ステートメントを使用して、セキュリティ保護可能なリソースの所有者を変更できます。 詳細については、「ALTER AUTHORIZATION (Transact-SQL)」を参照してください。

アクセス許可

サーバーに対する TAKE OWNERSHIP 権限が必要です。 新しい所有者に対応するユーザーがデータベース内に存在する場合は、ログインに対する IMPERSONATE 権限が必要です。存在しない場合は、サーバーに対する CONTROL SERVER 権限が必要です。

次の例では、ログイン Albert を、現在のデータベースの所有者にします。

EXEC sp_changedbowner 'Albert';  

参照

セキュリティ ストアド プロシージャ (Transact-SQL)
CREATE DATABASE (SQL Server Transact-SQL)
sp_dropalias (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helpdb (Transact-SQL)
sp_helplogins (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)