回答:
リンゴとオレンジ。役割は役割であり、スキーマはスキーマです。呼び出されるロールと呼び出されるdb_accessadmin
スキーマがあるという事実db_accessadmin
は、ロールがスキーマであることも、スキーマがロールであることも意味しません。ロールはセキュリティメンバーシップコンテナであり、プリンシパルはロールのメンバーです。スキーマにはデータベーススキーマバインドオブジェクトが含まれ、プリンシパルが所有しています。新しいユーザーを作成するときに、デフォルトのスキーマを選択し、特定のロールに追加して、スキーマの所有権を付与できます。アクションは別々ですが、このダイアログの設計者は、彼らが何らかの形で全てUX(不動産というメリットにと関連していると感じている疑問が、完全に別のトピック)。
まあ..これは非常に古いスレッドですが、まだここを訪れる人のために私からまだ2セントです。このリンクは、上記のクエリに対するベストアンサーです。
同じからの抜粋:
SQL Serverには、組み込みのデータベースユーザーおよびロールと同じ名前を持つ10個の定義済みスキーマが付属しています。これらは主に下位互換性のために存在します。不要な場合は、固定データベースロールと同じ名前のスキーマを削除できます。
db_datareader
ロールとスキーマを持つユーザーが書き込み可能にすることができると推測しているが、必ずしも他の人が読めるとは限らない。への読み取りアクセスのみをdbo
必要とするが、いくつかのストアドプロシージャまたはトリガーをインストールする必要があるアプリではうまくいきます。もちろん、それでも各ユーザーをロールとスキーマの両方に手動で追加する必要があります。