Was sind einige bewährte Methoden für die Verwendung von Schemas in SQL Server?


24

Ich verstehe die Funktionen von SQL Server-Schemata, aber was sind die Best Practices? Sicher, sie bieten eine weitere Sicherheitsebene und bieten eine logische Gruppierung von Datenbankobjekten in der Datenbank, aber was ist da draußen typisch? Nach meiner Erfahrung werden häufig nicht viele benutzerdefinierte Schemas verwendet. Ist das typisch? Ist es das seltenere Szenario, in dem benutzerdefinierte Schemas verwendet werden sollten?

Antworten:


16

Wir benutzen sie

  • Berechtigungen pro Client trennen (z. B. haben wir Desktop-, WebGUI- usw. Schemata)
  • für die logische Gruppierung zB (Daten- und Staging-Schemata für unsere Tabellen).

Nützliche und praktische Beobachtungen nach dem von Marian erwähnten Weißbuch:

  • GRANT für das Schema: Keine Berechtigungen mehr pro Objekt. Ein neuer Proc im WebGUI-Schema verfügt also automatisch über die Berechtigungen des Schemas
  • Schöne Gruppierungen im SSMS Object Explorer
  • OBJECT_SCHEMA_NAME
  • Sie sind gezwungen, Objektnamen zu qualifizieren (dies ist eine bewährte Methode).

15

Ich denke, dass eine Antwort in diesem MSDN-Artikel zu finden ist: Best Practices für SQL Server - Implementierung von Datenbankobjektschemata .

Zitat: "In diesem Whitepaper werden die Möglichkeiten für Verbesserungen bei der Sicherheitsverwaltung einer Benutzerdatenbank erörtert und einige bewährte Methoden für die Verwendung von Schemata zum Verwalten von Datenbankobjekten in Entwicklungs- und Produktionsdatenbanken beschrieben. Insbesondere werden drei reale Szenarien behandelt:

  • Schutz von Datenbankobjekten vor Änderungen durch Benutzer ohne Wissen des Datenbankbesitzers
  • Verhindern, dass Datenbankbasisobjekte, insbesondere ISV-Datenbanken (Independent Software Vendor), ad-hoc oder falschem Benutzerzugriff ausgesetzt werden und zu einer schlechten Anwendungsleistung führen
  • Zusammenführen verwandter Gruppen von Objekten (logischen Entitäten) in einer physischen Datenbank, um den Verwaltungsaufwand für die physische Datenbank zu verringern ".

Ich verwende insbesondere den dritten Teil - Beziehen von Objektgruppen auf der Grundlage ihrer logischen Bedeutung - verschiedene Schemata, die zu verschiedenen Projekten in derselben Datenbank gehören.


-2

Möglicherweise möchten Sie einige der Grundlagentexte zu diesem Thema lesen, um einige Ihrer Fragen zu beantworten. Dokumente zum relationalen Datenbankmodell von EF Codd und CJ Date behandeln viele häufig gestellte Fragen in Bezug auf Design, Leistung, Sicherheit, optimalen Schemadesign usw. Letztendlich bilden ihre Werke als Väter des modernen relationalen Datenbankmodells die Grundlage für DB2. Oracle, SQL Server (Microsoft und Sybase), Ingres, MySQL und alle anderen verfügbaren relationalen Datenbanklösungen.


1
Hierbei handelt es sich anscheinend um das Datenbankdesign im Allgemeinen und überhaupt nicht um SQL Server-Schemata.
AakashM
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.