Grundlegendes zu SQL Server-Berechtigungen

8

Ich arbeite in SQL Server Management Studio mit meiner Instanz von SQL Server 2008 R2 Express Edition. Ich versuche zu verstehen, wie die Berechtigungen funktionieren.

Was ich sehen kann, ist (über die Eigenschaften vieler dieser Entitäten)

  1. Mein Server-Login kann mit einem Datenbankbenutzer verknüpft werden
  2. Mein Datenbankbenutzer kann eine oder mehrere Datenbankrollen haben
  3. Eine der Datenbankrollen ist db_datawriter, dem das Schema db_datawriter gehört

An diesem Punkt wird der Weg jedoch kalt. Schema db_datawriter hat unter seinen Eigenschaften eine Berechtigungsseite, die leer ist.

Was definiert genau die Berechtigungen des Schemas db_datawriter?

akc42
quelle

Antworten:

7

db_datawriter hat keine Elemente auf der Berechtigungsseite, da es keine expliziten Objektberechtigungen als solche hat. Rechte werden durch die Rolle impliziert.

MSDN für db_datawriter sagt

Mitglieder der festen Datenbankrolle db_datawriter können Daten in allen Benutzertabellen hinzufügen, löschen oder ändern.

Es verfügt über INSERT, UPDATE, DELETE für Tabellen gemäß einer anderen MSDB-Seite Berechtigungen für feste Datenbankrollen

Zugegeben: DELETE, INSERT, UPDATE

Was sagt die DB-Engine schließlich (SQL Server 2008 R2)?

EXEC sp_dbfixedrolepermission 'db_datawriter'

db_datawriter   DELETE permission on any object
db_datawriter   INSERT permission on any object
db_datawriter   UPDATE permission on any object

Die MSDN-Seiten für SQL Server 2008 befinden sich hier (unterschiedliche Seitenhierarchie)

gbn
quelle
Ich denke, das OP fragt nach den Berechtigungen für das Schema, nicht nach der festen Datenbankrolle. Es sei denn, ich habe das falsch verstanden?
Thomas Stringer
@ Surfer513: Das Schema ist ein Platzhalter für die Rolle, es hat keine Berechtigungen
gbn
Ah, okay, ich verstehe. Vielen Dank, dass Sie das Missverständnis ausgeräumt haben!
Thomas Stringer
Ich habe tatsächlich versucht herauszufinden, ob db_datawriter Ihnen das Recht gegeben hat, durch eine Ansicht zu schreiben. Ich denke, die Antwort ist, dass Sie dies können, wenn Sie Berechtigungen für die zugrunde liegende Tabelle haben (und die anderen Bedingungen erfüllen, nur in eine Tabelle einzufügen). Mein Fehler beim Schreiben stellte sich als erneutes Problem mit der Identitätsspalte heraus und schlug auch in der zugrunde liegenden Tabelle fehl
akc42