sp_changedbowner (Transact-SQL)

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

注意

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

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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

引数

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

  • [ @map = ] remap_alias_flag
    ログインの別名は SQL Server では廃止されたため、remap_alias_flag パラメーターの使用は推奨されません。remap_alias_flag パラメーターを使用してもエラーは発生しませんが、何の効果もありません。

リターン コード値

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

説明

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

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

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

sp_changedbowner に login パラメーターだけを指定して実行すると、データベースの所有者が login に変更されます。

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

権限

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

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

EXEC sp_changedbowner 'Albert'