sp_changedbowner (Transact-SQL)

適用対象: はいSQL Server (サポートされているすべてのバージョン)

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

重要

この機能は、Microsoft 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
ログインの別名はから削除されているため、 remap_alias_flag パラメーターは非推奨とされ SQL Server ます。 Remap_alias_flag パラメーターを使用してもエラーは発生しませんが、効果はありません。

リターン コードの値

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

解説

sp_changedbowner を実行した後、新しい所有者はデータベース内で dbo ユーザーとして認識されるようになります。 dbo には、データベース内ですべての操作を実行できる権限が暗黙的に与えられます。

master、model、または tempdb システム データベースの所有者を変更することはできません。

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

Login パラメーターだけを指定して 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)