トップ 一覧 ping 検索 ヘルプ RSS ログイン

SQL Server スキーマの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!SQL Server スキーマ
[SQL Server][SQL Server 2005]

*http://msdn.microsoft.com/ja-jp/library/ms190387(SQL.90).aspx

!!ユーザーとスキーマの分離
!!!ユーザーとスキーマの分離
*データベース スキーマは、データベース ユーザーとは別の、独立した名前空間
*SQL Server 2005 からは、各オブジェクトがデータベース スキーマに属する
*スキーマはオブジェクトのコンテナ
*データベース内で作成したり変更することができる
*ユーザーにはスキーマに対するアクセス権を与えることができる

""SQL Server 2005 より前は、データベース ユーザーとデータベース スキーマは概念的に同じオブジェクトだった
!重要な変化
!!重要な変化
*保護可能なリソースの権限を、より厳密に管理
**[GRANT (スキーマ権限の許可)|http://msdn.microsoft.com/ja-jp/library/ms187940(v=SQL.90).aspx]
**[GRANT (オブジェクトの権限の許可)|http://msdn.microsoft.com/ja-jp/library/ms188371(v=SQL.90).aspx]
*スキーマとスキーマ スコープのセキュリティ保護可能なリソースの所有権を譲渡
**[ALTER AUTHORIZATION|http://msdn.microsoft.com/ja-jp/library/ms187359(v=SQL.90).aspx]
*スキーマ間でオブジェクトを移動
**[ALTER SCHEMA|http://msdn.microsoft.com/ja-jp/library/ms173423(v=SQL.90).aspx]
*1 つのスキーマに複数のデータベース ユーザーが所有するオブジェクトを含めることができます
*複数のデータベース ユーザーが 1 つの既定のスキーマを共有できます。
*どのデータベース プリンシパルでも、1 つのスキーマを所有できます。
*対応するスキーマ内のオブジェクトを削除しなくても、データベース ユーザーを削除できます。

!既定のスキーマ
!!既定のスキーマ
::SQL Server 2000
*リソースの名前が完全修飾されていない場合、これを解決するため名前解決が使用される
*呼び出し側のデータベース ユーザーが所有するスキーマと dbo が所有するスキーマが照合される
::SQL Server 2005 
*各ユーザーに既定のスキーマを割り当てることができます。(CREATE USER、ALTER USER の DEFAULT_SCHEMA オプション)
*DEFAULT_SCHEMA が定義されていない場合、dbo スキーマが既定のスキーマと見なされます。

""Windows 認証されたグループ経由で接続するユーザーには、既定のスキーマが関連付けられません。スキーマを持たないユーザーがオブジェクトを作成すると、新しいスキーマが作成されます。名前は現在のユーザー名に設定されます。
!組み込みスキーマ

!!!組み込みスキーマ
*組み込みのデータベース ユーザーおよびロールと同じ名前を持った 10 個の定義済みスキーマが付属しています。 
*主に下位互換性を確保するために存在します。
*固定データベース ロールと同じ名前のスキーマは、不要であれば削除してもかまいません。

::次のスキーマを削除することはできません。
*dbo
*guest
*sys
*INFORMATION_SCHEMA

!!dbo スキーマ
*新しく作成されたデータベースに使用される既定のスキーマ
*dbo スキーマは、dbo ユーザー アカウントによって所有
*CREATE USER で作成されたユーザーには、dbo が既定のスキーマとして割り当てられます。

""dbo スキーマが割り当てられたユーザーは、dbo ユーザー アカウントの権限を継承しません。  スキーマの権限はユーザーによって継承されるのではなく、そのスキーマに含まれたデータベース オブジェクトによって継承されます。