プロが教える店舗&オフィスのセキュリティ対策術

テストで作成したユーザーを削除したいのですが、データベースユーザーの
プロパティの画面で「このユーザーが所有するスキーマ」が選択されている
状態(□に緑の■が入っている)だと削除できません。

試している最中に□にチェックを入れて[OK]をクリックした記憶があります。

他のユーザーの同じ項目の□にチェックを入れて[OK]を押せば消せる
(他のユーザーへ移る)事は判ったのですが、今度はそのユーザーから
消すことができません。

他のデータベースを確認すると「このユーザーが所有するスキーマ」が
選択されているユーザーはありません。

質問1 他のユーザーに移して、このまま放かっておいていいのでしょうか?
質問2 「このユーザーが所有するスキーマ」はどんな意味でどんな使い方なのでしょうか?

よろしくお願いします。

A 回答 (1件)

SQL Server 2005からはユーザとスキーマは分離されています。


スキーマを分けてテーブルなどのオブジェクトを作ることで、オブジェクトを分類して管理することができます。

すべてのスキーマには所有者がいます。
所有者になれるのはユーザのほかデータベースロール、アプリケーションロールです。
従来はスキーマはユーザと連動していたので、testusrユーザを作るとtestusrスキーマが作られ、そのスキーマ内にテーブルを作ってしまうと、testusrを削除できなくなってしまうという問題がありました。
今は書かれている通り別のユーザにスキーマの所有権を移すことができるので、所有するスキーマを全部他のユーザに移してしまえば、ユーザの削除も可能です。

今回話題になっているスキーマがdb_datareader, db_ownerなどのシステムにもともと作られていたスキーマなのであれば、それらの本来のスキーマ所有者は同じ名前のデータベースロールです。なので、同じ名前のデータベースロールに所有者を変更しておけばよいでしょう。
また、testschema1など自分で作成したスキーマで、そのスキーマ自体がもう不要なものなのであれば、スキーマフォルダからそのスキーマ自体を削除してしまっても構わないです。既にそのスキーマに削除できないオブジェクトが作成されているならば、どれか別のユーザに所有権を移してあげて問題ありません。適当なユーザがないならばdboユーザに所有権をつけてください。
    • good
    • 0
この回答へのお礼

ありがとうございました、これで安心できます。

お礼日時:2010/01/26 12:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A