sp_changedbowner (Transact-SQL)
現在のデータベースの所有者を変更します。
注意 |
---|
この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。 新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。代わりに ALTER AUTHORIZATION を使用してください。 |
構文
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'