Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Schema, Eigentümer für Objekte in MS SQL

Die Verwendung von Schemas ist besonders vorteilhaft, wenn Sie Sicherheitsbedenken haben.

Wenn Sie mehrere Anwendungen haben, die auf die Datenbank zugreifen, möchten Sie der Logistikabteilung möglicherweise keinen Zugriff auf Personaldatensätze gewähren. Sie fügen also alle Ihre Human Resources-Tabellen in ein hr-Schema ein und gewähren nur Benutzern in der hr-Rolle Zugriff darauf.

Sechs Monate später muss die Logistik nun interne Spesenabrechnungen kennen, damit sie all diese Paletten blauer Stifte an die richtigen Mitarbeiter vor Ort senden kann. Anschließend können Sie eine gespeicherte Prozedur erstellen, die als Benutzer ausgeführt wird, der über die Berechtigung zum Anzeigen des hr-Schemas sowie des Logistikschemas verfügt. Die Logistikanwender müssen nie wissen, was in der Personalabteilung vor sich geht, und erhalten trotzdem ihre Daten.

Sie können Schemas auch so verwenden, wie cfeduke vorgeschlagen hat, und sie einfach verwenden, um Dinge im Objektbrowser zu gruppieren. Wenn Sie dies tun, seien Sie vorsichtig, da Sie am Ende möglicherweise Person.Address und Company.Address erstellen, wenn Sie wirklich nur eine einzige dbo.Address benötigen (ich klopfe nicht auf Ihr Beispiel, cfeduke, sondern verwende es nur, um beides zu veranschaulichen Adresstabellen können gleich oder unterschiedlich sein und das YMMV).