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?
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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 418540
Url: https://administrator.de/contentid/418540
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
1 Kommentar
Moin,
GRANT und DENY sind Deine Freunde. Um Leserechte auf einer Tabelle zu erteilen:
oder auf eine Spalte
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
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