Wenn es um das Dbo-Schema geht:
- Ist es eine bewährte Methode, beim Erstellen von Datenbankobjekten die Verwendung des DBO-Schemas zu vermeiden?
- Warum sollte das Dbo-Schema vermieden werden oder sollte es?
- Welcher Datenbankbenutzer sollte das Dbo-Schema besitzen?
Antworten:
Dies kann eine gute Vorgehensweise sein, da Sie den Zugriff anderer Benutzer auf die Datenbank mithilfe von Schemas einschränken möchten. In einer Datenbank haben Sie beispielsweise die folgenden Tabellen.
Als HR-Direktor kann ich auf alles im
HR
Schema zugreifen , alsIT
Direktor kann ich Benutzernamen und Zugriffsebenen von Mitarbeitern anzeigen. DieEngineering
Abteilung kann sehen, welche Baustellen aktiv sind usw. Wenn dbo das festgelegte Schema für alle Tabellen wäre, würde es mir schwerer fallen, meine Daten zu segmentieren und Zugriffsrollen bereitzustellen.Ich glaube, die Idee bei SQL Server ist es, ein Produkt anzubieten, auf das von verschiedenen Abteilungen zugegriffen und abgefragt werden kann. In Wirklichkeit greifen nur DBAs / DBDevs wirklich auf die Datenbank zu und speichern normalerweise nur Anwendungsdaten.
Es hilft auch bei der Lesbarkeit und Verwaltbarkeit. Auf den ersten Blick kann ich leicht erkennen, welche Tabelle welche Daten enthält und wie die Daten getrennt sind.
Persönlich bevorzuge ich es, Schemata als allgemeine Praxis zu definieren. Denken Sie daran, dass das Schema für den Plan griechisch ist. Eine übersichtliche Schema-Struktur hilft Ihnen beim Planen und Identifizieren von Daten.
quelle
Ich denke, das hängt wirklich von den Vorlieben der Benutzer ab, da es keinen wirklichen technologischen Grund gibt, dies zu tun. Der Einfachheit halber sage ich immer dbo, es sei denn, Ihre Sicherheitsanforderungen sehen etwas anderes vor. Natürlich können Sie dies auch nur zu organisatorischen Zwecken tun.
quelle
Wenn überhaupt, sollte Dbo vermieden werden, da dies die Standardeinstellung für SQL Server ist. Außerdem ist es überhaupt nicht beschreibend. Wie alle anderen Standardnamen macht es einem Hacker das Leben um einiges leichter, da es vorbekannt ist (obwohl Sie wahrscheinlich bereits überlistet sind, wenn er gerade versucht, Ihren Schemanamen herauszufinden).
Wo ich arbeite, verwenden wir Schemas, um die Datenbank in logische Abschnitte zu unterteilen und Schemas Berechtigungen zuzuweisen.
Zum Beispiel können wir ein Inventarsystem mit einer Datenbank haben. Die Haupttabellen befinden sich möglicherweise im inv-Schema. Wenn wir etwas in die Datenbank importieren, wird ein Staging-Schema als Teil des Importvorgangs verwendet. Wenn wir gespeicherte Systemprozeduren haben, auf die Benutzer keinen Zugriff benötigen, fügen wir sie in ein SP-Schema ein.
quelle
Es war bisher keine bewährte Methode, da Schemas vor SQL 2005 ausgeblendet wurden und alles in das Dbo-Schema eingefügt wurde. Das SQL Server-Team zeigt dies als Best Practice und veröffentlichte einen Artikel darüber: Best Practices für SQL Server - Implementierung von Datenbankobjektschemata
Was Ihre andere Frage betrifft, wem es gehören sollte: Das dbo-Schema gehört dem dbo-Benutzerkonto.
quelle