Zweck des Besitzes eines Schemas in SQL Server

7

Ich habe die letzten Tage damit verbracht, Datenbankberechtigungen zu bereinigen, sie alle in AD-Gruppen zu gruppieren und verwaiste Benutzer zu entfernen.

Dies hat mich zu einem wiederkehrenden Szenario geführt:

  1. Suchen Sie einen Benutzer, der ein Schema besitzt
  2. Übertragen Sie das Schema-Eigentum an SA
  3. Benutzer entfernen

Die Schemas können nicht regelmäßig geändert werden, und meistens ist es ein Benutzer, dem das dboSchema gehört.

Ich habe nachgeforscht, was die Gründe dafür sein könnten, diesen Benutzern das Eigentum an Schemata zu geben, aber ich kann keinen richtigen Grund finden. Die meisten Dokumentationen sprechen von einer Schemamitgliedschaft, bei der Schemas für Berechtigungen verwendet werden, aber es fällt mir schwer, viel über den Schemabesitz zu finden.

Was könnte ein korrekter Grund sein, um Benutzern das Eigentum an Schemas zu geben?
Gibt es versteckte Gefahren beim Entfernen des Schemabesitzes von verwaisten Benutzern?

Reagiert
quelle
1
Schemas sind ein Mechanismus zur Feinabstimmung der Sicherheit von Objekten. Nach meiner Erfahrung werden die meisten Schemata jedoch nur zum Identifizieren von Objektgruppen für einen bestimmten Zweck verwendet. Ich würde Ihrer Aufgabenliste ein paar Schritte hinzufügen, 1.5 prüfen, ob Objekte im Besitz des Schemas sind, und 1.75, ob für das Schema spezielle Berechtigungen definiert sind. Sie werden häufiger auf 1,5 als auf 1,75 stoßen, aber Sie sollten diese überprüfen, bevor Sie den Besitz auf den mächtigsten Besitzer der Box übertragen.
Steve Mangiameli
@SteveMangiameli Du hast mich dort etwas verloren. Der Eigentümer eines Schemas, der geändert wird, hat nur dann Auswirkungen, wenn der Code, der Daten aus dem Schema abruft, nicht den Befehl fqdn verwendet und sich stattdessen auf die Schemadefinitionen des Benutzers stützt. Wenn der Benutzer jedoch bereits eine Waise ist, kann dies kein Problem mehr sein?
Reagiert
Sorry Reaces, ich hätte die ursprüngliche Frage beantworten sollen. Der Besitzer ist nicht wichtig. Zumindest habe ich, wie Sie, nicht festgestellt, dass das Eigentum viel bedeutet hat. In einer Umgebung, in der es möglich wäre, Steve und Reaces als Schemabesitzer zu haben, aber keine Berechtigung zum gegenseitigen Zugriff auf Objekte haben, ist dies möglicherweise wichtig. Aber genau darum ging es mir - Schemata werden normalerweise nicht so verwendet. Was die zusätzlichen Überprüfungen betrifft, habe ich falsch verstanden, was Sie getan haben. Objektbesitz wäre nur wichtig, wenn Sie das Schema entfernen würden.
Steve Mangiameli

Antworten:

1

Ein Eigentümer eines Datenbankobjekts hat automatisch und unwiderruflich die vollen Rechte daran. Natürlich können Sie einem Benutzer alle Rechte an einem Schema erteilen, ohne ihn zum Eigentümer zu machen.

Stefan Wilms
quelle
Dies ist zwar eine Folge der Aktion, kann jedoch nicht rechtfertigen, dass dies ein guter Grund ist , dem Schema den Besitz zu gewähren. Und es ist definitiv kein Risiko, wenn verwaiste Benutzer entfernt werden. +1 obwohl.
Reagiert