web-dev-qa-db-ja.com

SQL Serverのスキーマの重要性は何ですか?

SQL Serverのスキーマの重要性は何ですか?

このスキーマはどこで役に立ちますか?セキュリティ上の理由から重要ですか?

25
masoud ramezani

はい、SQLスキーマの主な目的は-セキュリティ管理を容易にすることでした:誰が[どのプリンシパル]がどの[どのデータベースオブジェクト]にアクセスできるかを定義します。これは、スキーマが所有者に直接結び付けられなくなったSQL2005以降で特に簡単になりました。

スキーマのもう1つの用途は、名前空間として機能することです、つまり、異なるスキーマのオブジェクト間で名前が衝突するのを防ぎます。
これの元々の使用法は、特定のデータベースの複数の[インタラクティブ、つまりアドホックのような]ユーザーが、の存在を心配することなく、独自のテーブルまたはストアドプロシージャ(または他のオブジェクト)を作成できるようにすることでした。他のユーザーによって導入された可能性のある同様の名前のオブジェクト。
スキーマの名前空間のような性質は、計画されたデータベース設定で使用することもできます。つまり、単一のアーキテクトが異なるタイプのアクセスを提供する方法でデータベース構造を設計する場合、実際には異なりますbehaviors、個別のユーザーグループ用。

25
mjv

データベースをパーティション分割して、管理を容易にします。これはMSDNからのものです:

スキーマは、スキーマを作成したデータベースユーザーとは独立して存在する別個の名前空間になりました。言い換えれば、スキーマは単にオブジェクトのコンテナです。スキーマはどのユーザーでも所有でき、その所有権は譲渡可能です。

から来たページは次のとおりです: http://msdn.Microsoft.com/en-us/library/ms190387.aspx

セキュリティに関しては、データベース全体を公開せずにスキーマへのアクセスを誰かに許可できるため、アクセス許可の割り当てが簡単になります。

5
Tony

SQL Server 2005以降のリリースで変更されたスキーマ-オブジェクトのコンテナーであると同時に、追加のセキュリティレイヤーと考えています。

これは非常に優れたリソースです: http://msdn.Microsoft.com/en-us/library/ms190387(SQL.90).aspx

2
Peter Schofield

スキーマは主に、1つの物理データベース内の複数の論理エンティティを管理するために使用されます。

スキーマは、データベースユーザーをデータベースオブジェクトの所有者から分離するに便利な方法を提供します。これらにより、DBAはデータベース内の機密オブジェクトを保護し、論理エンティティをグループ化することができます。

これは、これらのオブジェクトがアプリケーションによってユニットとして使用されることが多い状況で特に有利です。たとえば、ホテル管理システムは、次の論理エンティティまたはモジュールに分割できます:部屋、バー/レストラン、およびキッチン用品。

これらのエンティティは、3つの別個の物理データベースとして保存できます。ただし、スキーマを使用すると、1つの物理データベースで3つの論理エンティティとして組み合わせることができます。これにより、3つの別々のデータベースを管理する管理の複雑さが軽減されます。

ソース

2
ManirajSS