web-dev-qa-db-ja.com

SQL Server 2012でdboスキーマの所有権を転送する方法

誤ってユーザーにdb_ownerスキーマの所有権を(誤って以下のUIのチェックボックスを使用して)与えましたが、今はできません。

  1. 所有権を別のユーザーに譲渡する
  2. DBからユーザーを削除します(SQL Serverでログインを削除できます)

試しました データベースプリンシパルはデータベース内のスキーマを所有しているため、削除できません。

ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo

そして、正常に完了しましたが、ユーザーはまだ所有権を持っており、灰色になっているので、UIでそれを行うこともできません。

enter image description here

解決策を見つけました:

Arron's answer に加えて、上記のコマンドを間違ったDB(facepalm!)で実行することに気付きました。 DBが修正されると、上記のSQLと以下の回答の両方が機能しました。

15
Preet Sangha

少し異なるアプローチは、スキーマをdboではなく、元の所有者/スキーマに戻すことです。

ALTER AUTHORIZATION ON SCHEMA::db_owner TO db_owner;
22
Aaron Bertrand