次の方法で共有


sp_changedbowner (Transact-SQL)

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

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

構文

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

引数

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

リターン コードの値

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

解説

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

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

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

sp_changedbownerlogin パラメータだけを指定して実行すると、データベースの所有者は login に代わり、以前 dbo に割り当てられていたユーザーの別名はこの新しいデータベース所有者にマップされます。

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

権限

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

次の例では、ログイン Albert を現在のデータベースの所有者とし、以前のデータベース所有者に割り当てられていた別名を Albert にマップします。

EXEC sp_changedbowner 'Albert'

参照

関連項目

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手