andreasoc
Goto Top

Wie richtig SQL Rechte einschränken?

Hallo,

ich möchte auf einem SQL Server 2017 einen Benutzer für eine bestimmte Datenbank mit einem Berechtigungskonzept versehen.
- Lesender Zugriff auf alle Tabellen
- Schreibender Zugriff auf dem Feld [DatenbankABC].[datenbankschema].[tabelle].[Feldname]
- Recht um views zu erstellen und zu löschen
- Recht um eigene Tabellen zu erstellen und zu löschen

Den ersten Punkt könnte ich über eine neue Datenbankrolle, aber ich weiß nicht wie ich die anderen zwei Punkte lösen soll. Kann mir da jemand helfen?

Content-Key: 418540

Url: https://administrator.de/contentid/418540

Printed on: April 18, 2024 at 16:04 o'clock

Member: erikro
erikro Feb 15, 2019 at 16:04:01 (UTC)
Goto Top
Moin,

GRANT und DENY sind Deine Freunde. Um Leserechte auf einer Tabelle zu erteilen:

GRANT SELECT ON table TO user;

oder auf eine Spalte

GRANT SELECT ON OBJECT::table(spalte) TO user;

Wichtig! Reihenfolge beachten. Ein Grant auf eine Spalte überschreibt den auf die Tabelle. Aber wenn ich erst den Grant auf die Spalte absetze und danach einen widersprechenden auf die Tabelle, wird der Grant auf die Spalte wieder überschrieben.

https://docs.microsoft.com/de-de/sql/relational-databases/security/permi ...
https://docs.microsoft.com/de-de/sql/t-sql/statements/grant-object-permi ...
https://docs.microsoft.com/de-de/sql/t-sql/statements/grant-transact-sql ...
https://docs.microsoft.com/de-de/sql/t-sql/functions/permissions-transac ...

hth

Erik