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'
関連項目
参照
セキュリティ ストアド プロシージャ (Transact-SQL)