Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-Endpunkt in Microsoft Fabric
Warehouse in Microsoft Fabric
Verwenden GRANT Sie und Anweisungen DENY , um eine Berechtigung (z. B. UPDATE) für eine sichere Datei (wie Datenbank, Tabelle, Ansicht usw.) an einen Sicherheitsprinzipal (einen Login, einen Datenbankbenutzer oder eine Datenbankrolle) zu erteilen oder zu verweigern. Verwenden REVOKE Sie es, um die Erteilung oder Ablehnung einer Genehmigung zu entfernen.
Berechtigungen auf Serverebene werden auf Anmeldenamen angewendet. Berechtigungen auf Datenbankebene werden auf Datenbankbenutzer und Datenbankrollen angewendet.
Fragen Sie die Sichten „sys.server_permissions“ und „sys.database_permissions“ ab, um festzustellen, welche Berechtigungen erteilt und verweigert wurden. Berechtigungen, die einem Sicherheitsprinzipal nicht explizit erteilt oder verweigert wurden, können geerbt werden, wenn eine Mitgliedschaft einer Rolle mit Berechtigung besteht. Die Berechtigungen der festen Datenbankrollen können nicht geändert werden und werden nicht in den Sichten „sys.server_permissions“ und „sys.database_permissions“ angezeigt.
GRANT gewährt ausdrücklich eine oder mehrere Berechtigungen.
DENY Verweigert dem Hauptprinzipal ausdrücklich eine oder mehrere Berechtigungen.
REVOKE entfernt bestehende GRANT oder DENY Berechtigungen.
Transact-SQL-Syntaxkonventionen
Syntax
-- Azure Synapse Analytics and Parallel Data Warehouse and Microsoft Fabric
GRANT
<permission> [ ,...n ]
[ ON [ <class_type> :: ] securable ]
TO principal [ ,...n ]
[ WITH GRANT OPTION ]
[;]
DENY
<permission> [ ,...n ]
[ ON [ <class_type> :: ] securable ]
TO principal [ ,...n ]
[ CASCADE ]
[;]
REVOKE
<permission> [ ,...n ]
[ ON [ <class_type> :: ] securable ]
[ FROM | TO ] principal [ ,...n ]
[ CASCADE ]
[;]
<permission> ::=
{ see the tables below }
<class_type> ::=
{
LOGIN
| DATABASE
| OBJECT
| ROLE
| SCHEMA
| USER
}
Argumente
<Berechtigungen>[ ,...n ]
Mindestens eine Berechtigung, die zu erteilen, verweigern oder widerrufen ist.
ON [ <class_type> :: ] securable Die ON-Klausel beschreibt den sicherungsfähigen Parameter, für den Berechtigungen zugewiesen, verweigert oder widerrufen werden sollen.
<class_type> Der Klassentyp des sicherungsfähigen Elements. Dies kann , DATABASE, OBJEKT,SCHEMA , , ROLEoder USERseinLOGIN. Berechtigungen können auch für SERVERKlassentyp erteilt werden, allerdings wird SERVER für diese Berechtigungen nicht angegeben. DATABASE wird nicht angegeben, wenn die Erlaubnis das Wort DATABASE enthält (zum Beispiel ALTER ANY DATABASE). Wenn class_type nicht angegeben ist und der Berechtigungstyp nicht auf die Server- oder Datenbankklassen beschränkt ist, wird von der Klasse OBJECT ausgegangen.
securable
Der Name für die Anmeldung, die Datenbank, die Tabelle, die Sicht, das Schema, die Prozedur, die Rolle oder den Benutzer, dem Berechtigungen erteilt, verweigert oder widerrufen werden sollen. Der Objektname kann mit den dreiteiligen Benennungsregeln angegeben werden, die unter Transact-SQL-Syntaxkonventionen beschrieben sind.
TO principal [ , ...n]
Mindestens ein Prinzipal, dem Berechtigungen erteilt, verweigert oder widerrufen werden sollen. Ein Prinzipal ist der Anmeldename, der Datenbankbenutzer oder die Datenbankrolle.
FROM principal [ , ...n]
Mindestens ein Prinzipal, für den Berechtigungen widerrufen werden sollen. Ein Prinzipal ist der Anmeldename, der Datenbankbenutzer oder die Datenbankrolle.
FROM kann nur mit einer Anweisung REVOKE verwendet werden.
TO kann mit GRANT, DENY, oder REVOKEverwendet werden.
MIT GRANT OPTION
Gibt an, dass der Empfänger die angegebene Berechtigung auch anderen Prinzipalen erteilen kann.
CASCADE
Gibt an, dass die Berechtigung für den angegebenen Prinzipal und für alle anderen Prinzipale verweigert oder widerrufen wird, denen diese Berechtigung von diesem Prinzipal erteilt wurde. Erforderlich, wenn der Schulleiter die Erlaubnis mit GRANT OPTION hat.
GRANT OPTION FÜR
Gibt an, dass die Fähigkeit, die angegebene Berechtigung zu erteilen, aufgehoben wird. Dies ist bei Verwendung des Arguments CASCADE erforderlich.
Wichtig
Hat der Auftraggeber die angegebene Erlaubnis ohne diese GRANT Option, wird die Erlaubnis selbst widerrufen.
Berechtigungen
Um eine Genehmigung zu erteilen, muss der Erteiler entweder die Erlaubnis selbst mit der WITH-Option GRANThaben oder eine höhere Genehmigung besitzen, die die erteilte Genehmigung impliziert. Objektbesitzer können Berechtigungen für die Objekte erteilen, die sie besitzen. Prinzipale mit der Berechtigung CONTROL für ein sicherungsfähiges Element können die Berechtigung für dieses sicherungsfähige Element erteilen. Mitglieder der festen Datenbankrollen db_owner und db_securityadmin können jegliche Berechtigungen in der Datenbank erteilen.
Allgemeine Hinweise
Das Verweigern oder Widerrufen von Berechtigungen für ein Prinzipal hat keine Auswirkungen auf Anforderungen, die bereits autorisiert wurden und derzeit ausgeführt werden. Zum sofortigen Einschränken des Zugriffs müssen Sie aktive Anforderungen abbrechen oder aktuelle Sitzungen beenden.
Hinweis
Die meisten festen Serverrollen sind in diesem Release nicht verfügbar. Verwenden Sie stattdessen benutzerdefinierte Datenbankrollen. Anmeldenamen können der festen Serverrolle sysadmin nicht hinzugefügt werden. Das Erteilen der Berechtigung CONTROL SERVER gleicht der Mitgliedschaft in der festen Serverrolle sysadmin.
Einige Anweisungen erfordern mehrere Berechtigungen. Zum Beispiel erfordert das Erstellen einer Tabelle die CREATE TABLE Berechtigungen in der Datenbank sowie die ALTER SCHEMA Berechtigung für die Tabelle, die die Tabelle enthalten wird.
Analytics Platform System (PDW) führt manchmal gespeicherte Prozeduren zum Verteilen von Benutzeraktionen auf Computeknoten aus. Aus diesem Grund kann die Berechtigung EXECUTE nicht für eine gesamte Datenbank verweigert werden. (Z.B. schlägt DENY EXECUTE ON DATABASE::<name> TO <user>; fehl.) Sie können dies umgehen, indem Sie die EXECUTE-Berechtigung für Benutzerschemas oder spezifische Objekte (Prozeduren) verweigern.
In Microsoft Fabric können derzeit nicht explizit CREATE USER ausgeführt werden. Wenn GRANT oder DENY ausgeführt wird, wird der Benutzer automatisch erstellt.
In Microsoft Fabric können Berechtigungen auf Serverebene nicht verwaltet werden.
Implizite und explizite Berechtigungen
Eine explizite Berechtigung ist eine GRANT- oder DENY-Berechtigung, die einem Prinzipal durch eine GRANT- oder DENY-Anweisung erteilt wird.
Eine implizite Berechtigung ist eine GRANT oder DENY eine Berechtigung, die ein Hauptverantwortlicher (Login, Benutzer oder Datenbankrolle) von einer anderen Datenbankrolle geerbt hat.
Eine implizite Berechtigung kann auch von einer abdeckenden oder übergeordneten Berechtigung geerbt werden. Zum Beispiel kann eine UPDATE Berechtigung für eine Tabelle vererbt werden, indem UPDATE man eine Berechtigung für das Schema hat, das die Tabelle enthält, oder die CONTROL-Berechtigung für die Tabelle.
Besitzverkettung
Wenn mehrere Datenbankobjekte aufeinander sequenziell zugreifen, wird diese Sequenz als Kette bezeichnet. Obwohl solche Ketten nicht unabhängig voneinander vorhanden sind, werden in SQL Server beim Traversieren der Links in einer Kette durch SQL Server die Berechtigungen für die einzelnen Objekte anders ausgewertet als beim getrennten Zugriff auf die Objekte. Besitzketten haben erhebliche Auswirkungen auf die Sicherheitsverwaltung. Weitere Informationen zu Besitzketten finden Sie im Artikel zu Besitzketten und im Tutorial: Besitzketten und Kontextwechsel.
Berechtigungsliste
Berechtigungen auf Serverebene
Berechtigungen auf Serverebene können von Anmeldenamen erteilt, verweigert und widerrufen werden.
Für Server geltende Berechtigungen
Steuerungsserver
VERWALTEN VON MASSENVORGÄNGEN
ÄNDERN EINER BELIEBIGEN VERBINDUNG
JEDES ÄNDERN DATABASE
BELIEBIG ERSTELLEN DATABASE
JEDES ÄNDERN EXTERNAL DATA SOURCE
JEDES ÄNDERN EXTERNAL FILE FORMAT
JEDES ÄNDERN LOGIN
SERVERSTATUS ÄNDERN
CONNECT SQL
VIEW JEDE DEFINITION
VIEW JEGLICHE DATABASE
VIEW SERVERSTATUS
Berechtigungen,die für Anmeldenamen gelten
STEUERUNG AN LOGIN
ALTER ON LOGIN
IMITIEREN AUF LOGIN
VIEW DEFINITION
Berechtigungen auf Datenbankebene
Berechtigungen auf Datenbankebene können von Datenbankbenutzern und benutzerdefinierten Datenbankrollen erteilt, verweigert und widerrufen werden.
Für alle Datenbankklassen geltende Berechtigungen
CONTROL
ALTER
VIEW DEFINITION
Für alle Datenbankklassen außer Benutzer geltende Berechtigungen
- EIGENTÜMERSCHAFT ÜBERNEHMEN
Nur für die Datenbank geltende Berechtigungen
JEDES ÄNDERN DATABASE
ALTER ON DATABASE
ÄNDERN EINES BELIEBIGEN DATENBEREICHS
JEDES ÄNDERN ROLE
JEDES ÄNDERN SCHEMA
JEDES ÄNDERN USER
BACKUP DATABASE
VERBINDEN UNS DATABASE
CREATE PROCEDURE
CREATE ROLE
CREATE SCHEMA
CREATE TABLE
CREATE VIEW
SHOWPLAN
Nur für Benutzer geltende Berechtigungen
- IMPERSONATE
Für Datenbanken, Schemas und Objekte geltende Berechtigungen
ALTER
DELETE
Führen Sie
INSERT
SELECT
UPDATE
REFERENCES
Eine Definition für jede Art der Berechtigung finden Sie unter Berechtigungen (Datenbank-Engine).
Standardberechtigungen
In der folgenden Liste werden die Standardberechtigungen beschrieben:
Wenn ein Login mit der Anweisung CREATE LOGIN erstellt wird, erhält der neue Login die SQL-Berechtigung CONNECT .
Alle Anmeldenamen sind Mitglieder der Serverrolle public und können nicht aus public entfernt werden.
Wenn ein Datenbankbenutzer mit der Berechtigung CREATE USER erstellt wird, erhält der Datenbankbenutzer die CONNECT-Berechtigung in der Datenbank.
Standardmäßig verfügen alle Prinzipale, einschließlich der Rolle public, über keine expliziten oder impliziten Berechtigungen.
Wenn ein Anmeldename oder ein Benutzer zum Besitzer einer Datenbank oder eines Objekts werden, erhalten diese alle Berechtigungen für die Datenbank bzw. das Objekt. Die Besitzerrechte können nicht geändert werden und sind nicht als explizite Berechtigungen sichtbar. Die , DENY, und REVOKE Aussagen GRANThaben keine Auswirkungen auf Eigentümer.
Der sysadmin-Anmeldename verfügt über alle Berechtigungen auf dem Gerät. Ähnlich wie Besitzerrechte, können sa-Berechtigungen nicht geändert werden und sind nicht als explizite Berechtigungen sichtbar. Die GRANT, DENY, und Anweisungen REVOKE haben keinen Einfluss auf den SA-Login . Der sa-Anmeldename kann nicht umbenannt werden.
Die Anweisung USE erfordert keine Berechtigungen. Auf allen Datenbanken können alle Prinzipale die Anweisung USE ausführen.
Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)
A. Erteilen einer Berechtigung auf Serverebene für einen Anmeldenamen
Die folgenden zwei Anweisungen erteilen einem Anmeldenamen eine Berechtigung auf Serverebene.
GRANT CONTROL SERVER TO [Ted];
GRANT ALTER ANY DATABASE TO Mary;
B. Erteilen einer Berechtigung auf Serverebene für einen Anmeldenamen
Im folgenden Beispiel wird einem Serverprinzipal (ein anderer Anmeldename) eine Berechtigung auf Serverebene für einen Anmeldenamen zugewiesen.
GRANT VIEW DEFINITION ON LOGIN::Ted TO Mary;
C. Erteilen einer Berechtigung auf Datenbankebene für einen Benutzer
Im folgenden Beispiel wird einem Datenbankprinzipal (ein anderer Benutzer) eine Berechtigung auf Datenbankebene für einen Benutzer zugewiesen.
GRANT VIEW DEFINITION ON USER::[Ted] TO Mary;
D: Erteilen, Verweigern und Widerrufen einer Berechtigung für ein Schema
Die folgende GRANT Anweisung gewährt Yuen die Möglichkeit, Daten aus jeder Tabelle oder Ansicht im DBO-Schema auszuwählen.
GRANT SELECT ON SCHEMA::dbo TO [Yuen];
Die folgende DENY Anweisung verhindert, dass Yuen Daten aus irgendeiner Tabelle oder Ansicht im DBO-Schema auswählt. Yuen kann die Daten nicht lesen, selbst wenn er auf eine andere Weise über die Berechtigung verfügt, z.B. über eine Rollenmitgliedschaft.
DENY SELECT ON SCHEMA::dbo TO [Yuen];
Die folgende REVOKE Aussage entfernt die Berechtigung DENY . Jetzt sind die expliziten Berechtigungen von Yuen neutral. Yuen könnte über eine andere implizite Berechtigung, wie z.B. eine Rollenmitgliedschaft, über die Berechtigung verfügen, Daten aus einer beliebigen Tabelle auszuwählen.
REVOKE SELECT ON SCHEMA::dbo TO [Yuen];
E. Veranschaulichung der optionalen Klausel OBJECT::
Da OBJECT die Standardklasse für eine Berechtigungsanweisung ist, sind die folgenden zwei Anweisungen identisch. Die Klausel OBJECT:: ist optional.
GRANT UPDATE ON OBJECT::dbo.StatusTable TO [Ted];
GRANT UPDATE ON dbo.StatusTable TO [Ted];