Unterschied zwischen eigenen Schemata und Rollenmitgliedschaft für Microsoft SQL Server

24

Gibt es Unterschiede zwischen Owned Schemasund Role Members?

Nach meinem Verständnis Role Memberssind die obligatorisch - Benutzer müssen mindestens eines der Kontrollkästchen Role Membersaktiviert haben.

Dies Owned Schemasist jedoch nicht obligatorisch. Ich frage mich wirklich, warum es notwendig ist, das Owned Schemasda drin zu haben .

Bildbeschreibung hier eingeben

Jack
quelle

Antworten:

17

Äpfel und Orangen. Rollen sind Rollen und Schemata sind Schemata. Die Tatsache, dass es eine aufgerufene Rolle db_accessadminund auch ein aufgerufene Schema gibt, db_accessadminbedeutet weder, dass eine Rolle ein Schema ist, noch, dass ein Schema eine Rolle ist. Rollen sind Container für Sicherheitsmitgliedschaften, ein Principal ist Mitglied einer Rolle. Schemas enthalten Objekte, die an ein Datenbankschema gebunden sind, und gehören einem Prinzipal. Wenn Sie einen neuen Benutzer erstellen, können Sie sein Standardschema auswählen, ihn bestimmten Rollen hinzufügen und ihm den Besitz von Schemas erteilen. Obwohl die Aktionen getrennt sind, sind die Designer dieses Dialogfelds der Meinung, dass sie in irgendeiner Weise miteinander verwandt sind, um all diese UX-Immobilien zu verdienen (das ist fraglich, aber ein völlig anderes Thema).

Remus Rusanu
quelle
Wenn Sie zwischen den Zeilen lesen, liegt der Sinn dieser Schemata vermutlich darin, dass Sie z. B. bestimmte Objekte für Benutzer mit der db_datareaderRolle und dem Schema beschreibbar machen können, die nicht unbedingt von anderen Benutzern gelesen werden können. Funktioniert gut für eine App, auf die nur Lesezugriff dboerforderlich ist, die jedoch einige gespeicherte Prozesse oder Trigger installieren muss. Dazu müssen Sie natürlich weiterhin jeden Benutzer manuell zur Rolle und zum Schema hinzufügen.
Jpaugh
-1

Naja .. das ist ein sehr alter Thread, aber immer noch 2 Cent von mir für diejenigen, die hier noch besuchen werden. Dieser Link hat die beste Antwort auf die obige Frage.

https://docs.microsoft.com/de-de/dotnet/framework/data/adonet/sql/ownership-and-user-schema-separation-in-sql-server

Ein Auszug aus demselben:

SQL Server wird mit zehn vordefinierten Schemas ausgeliefert, die dieselben Namen wie die Benutzer und Rollen der integrierten Datenbank haben. Diese bestehen hauptsächlich aus Gründen der Abwärtskompatibilität. Sie können die Schemas löschen, die dieselben Namen wie die festen Datenbankrollen haben, wenn Sie sie nicht benötigen.

Ganesh
quelle