SQL Serverでスキーマを使用するためのベストプラクティスは何ですか?


24

SQL Serverスキーマの機能は理解していますが、ベストプラクティスは何ですか?確かに別のセキュリティレイヤーを提供し、データベース内のデータベースオブジェクトの論理的なグループ化を提供しますが、一般的なものは何ですか?私の経験では、多くの場合、カスタムメイドのスキーマがあまり利用されていません。これは典型的なものですか?カスタムスキーマを使用する頻度の低いシナリオですか?

回答:


16

私たちはそれらを使用します

  • クライアントごとに権限を分離する(たとえば、デスクトップ、WebGUIなどのスキーマがある)
  • 論理的なグループ化の例(テーブルのデータおよびステージングスキーマ)。

マリアンが言及したホワイトペーパーを過ぎた有用で実用的な観察:

  • スキーマへの付与:オブジェクトごとの許可はこれ以上ありません。そのため、WebGUIスキーマの新しいprocには、スキーマの権限が自動的に付与されます
  • SSMS Object Explorerの素晴らしいグループ化
  • OBJECT_SCHEMA_NAME
  • オブジェクト名を修飾する必要があります(これがベストプラクティスです)

15

回答は、このMSDN記事「SQL Serverベストプラクティス-データベースオブジェクトスキーマの実装」にあると思います。

引用:「このホワイトペーパーでは、ユーザーデータベースのセキュリティ管理を改善する機会について説明し、スキーマを使用して開発および運用データベースのデータベースオブジェクトを管理するためのベストプラクティスの概要を示します。

  • データベース所有者の知識がなくても、ユーザーがデータベースオブジェクトを変更できないように保護する
  • データベースベースのオブジェクト、特に独立系ソフトウェアベンダー(ISV)データベースを、アドホックまたは不適切なユーザーアクセスから防止し、アプリケーションのパフォーマンスを低下させる
  • オブジェクト(論理エンティティ)の関連グループを1つの物理データベース内にまとめて、物理データベース管理オーバーヘッドを削減します。

特に、3番目の部分-論理的な意味に基づいてオブジェクトのグループを関連付ける-同じデータベース内の異なるプロジェクトに属する異なるスキーマを使用します。


-2

いくつかの質問に対処するために、これに関する基本的なテキストのいくつかにアクセスすることをお勧めします。EF CoddCJ Dateのリレーショナルデータベースモデルに関するドキュメントは、設計、パフォーマンス、セキュリティ、最適なスキーマ設計などに関連する多くの一般的な質問に対応しています。 ORACLE、SQL Server(MicrosoftおよびSybase)、Ingres、MySQL、および利用可能な他のすべてのリレーショナルデータベースソリューションセット。


1
これは、一般的な意味でのデータベース設計に関するものであり、SQL Serverスキーマに関するものではありません。
AakashM 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.