Erteilen Sie Rollen und Privilegien an Benutzer und Rollen.
Die in Versionen der Software vor 16.0 verwendete GRANT-Syntax für Berechtigungen und Gruppen wird weiterhin unterstützt, jedoch nicht mehr empfohlen. Weitere Hinweise zu dieser Syntax finden Sie unter GRANT-Anweisung (Berechtigungen und Gruppen) (nicht mehr empfohlen).
Zum Vergleich finden Sie Informationen zur GRANT-Anweisungssyntax in SQL Anywhere 12.0.1 unter http://dcx.sybase.com/index.html#1201/en/dbreference/grant-statement.html.
GRANT ROLE system-role TO grantee [ , ... ]
system-role : dbo | DIAGNOSTICS | PUBLIC | rs_systabgroup | SA_DEBUG | SYS | SYS_REPLICATION_ADMIN_ROLE | SYS_RUN_REPLICATION_ROLE | SYS_SAMONITOR_ROLE | SYS_SPATIAL_ADMIN_ROLE
GRANT ROLE user-defined-role [,...] TO grantee [ , ... ] [ { WITH NO ADMIN | WITH ADMIN [ ONLY ] } OPTION ]
GRANT compatibility-role-name [,...] TO grantee [ , ... ] [ { WITH NO ADMIN | WITH ADMIN [ ONLY ] } OPTION ] [ WITH NO SYSTEM PRIVILEGE INHERITANCE ]
compatibility-role-name : SYS_AUTH_BACKUP_ROLE | SYS_AUTH_DBA_ROLE | SYS_AUTH_PROFILE_ROLE | SYS_AUTH_READCLIENTFILE_ROLE | SYS_AUTH_READFILE_ROLE | SYS_AUTH_RESOURCE_ROLE | SYS_AUTH_SA_ROLE | SYS_AUTH_SSO_ROLE | SYS_AUTH_VALIDATE_ROLE | SYS_AUTH_WRITECLIENTFILE_ROLE | SYS_AUTH_WRITEFILE_ROLE
GRANT system-privilege [,...] TO grantee [ , ... ] [ { WITH NO ADMIN | WITH ADMIN [ ONLY ] } OPTION ]
GRANT object-level-privilege, ... ON [ owner.]object-name TO to-userid, ... [ WITH GRANT OPTION ] [ FROM from-userid ]
object-level-privilege : ALL [ PRIVILEGES ] | ALTER | DELETE | INSERT | REFERENCES [ ( column-name, ... ) ] | SELECT [ ( column-name, ... ) ] | UPDATE [ ( column-name, ... ) ]
GRANT SET USER [ ( user-list | ANY [ WITH ROLES role-list ] ) ] TO grantee [,...] [ { WITH NO ADMIN | WITH ADMIN [ ONLY ] } OPTION ]
GRANT CHANGE PASSWORD [ ( user-list | ANY [ WITH ROLES role-list ] ) ] TO grantee [,...] [ { WITH NO ADMIN | WITH ADMIN [ ONLY ] } OPTION ]
role-name Der Name einer Systemrolle, Kompatibilitätsrolle, benutzererweiterten Rolle oder benutzerdefinierten Rolle.
grantee Die Benutzer-ID eines Benutzers oder der Name einer Rolle. Sie können Kompatibilitätsrollen keine Privilegien und Rollen erteilen. Sie können jeder Systemrolle Rollen und Privilegien erteilen, jedoch unterstützen nur die folgenden Systemrollen Logins: PUBLIC, dbo, diagnostics, rs_systabgroup und SA_DEBUG.
WITH [NO] ADMIN OPTION-Klausel Diese Klausel ist nur beim Erteilen von Systemprivilegien und Nicht-Systemrollen anwendbar. Sie können keine Administrationsrechte für Systemrollen erteilen. Nur Benutzer mit MANAGE ROLES-Systemprivileg können Systemrollen verwalten (erteilen und entziehen).
Der Standardwert ist WITH NO ADMIN OPTION, was bedeutet, dass der grantee die Rollen bzw. Privilegien erhält, aber nicht die Möglichkeit, sie zu verwalten.
Wenn WITH ADMIN OPTION angegeben ist, erhält jeder grantee Administrationsrechte für jede role-granted und jedes system-privilege-granted.
Wenn WITH ADMIN ONLY OPTION angegeben ist, erhält der grantee nur Administrationsrechte für die Rollen, aber nicht die Rollen und Privilegien selbst. Sie können nie die WITH NO SYSTEM PRIVILEGE INHERITANCE-Klausel zusammen mit der WITH ADMIN ONLY OPTION-Klausel verwenden.
Die WITH ADMIN OPTION-Klausel können Sie nur beim Erteilen von SYS_AUTH_DBA_ROLE zusammen mit der WITH NO SYSTEM PRIVILEGE INHERITANCE-Klausel verwenden.
WITH NO SYSTEM PRIVILEGE INHERITANCE Diese Klausel verhindert, dass die Berechtigungsempfänger einer Rolle die Systemprivilegien der Rolle erben. Normalerweise gilt: Wenn Sie einem Benutzer oder einer Rolle eine Kompatibilitätsrolle erteilen, sind die Systemprivilegien der Kompatibilitätsrolle sowohl für die Rolle als auch für ihre Berechtigungsempfänger verfügbar. Wenn Sie die Vererbung der Systemprivilegien für eine Kompatibilitätsrolle deaktivieren, sind die Systemprivilegien nur für die Rolle verfügbar, aber nicht für ihre Berechtigungsempfänger.
Die WITH NO SYSTEM PRIVILEGE INHERITANCE-Klausel wird aus Gründen der Abwärtskompatibilität bereitgestellt. Das Deaktivieren der Vererbung von Systemprivilegien für eine Kompatibilitätsrolle entspricht dem Verhalten der nicht vererbbaren Berechtigungen in Datenbanken bis Version 12. Das Aktivieren der Vererbung von Systemprivilegien für eine Kompatibilitätsrolle entspricht dem Verhalten aller Systemrollen und benutzerdefinierten Rollen.
Sie können die Vererbung der Systemprivilegien deaktivieren, wenn Sie eine der folgenden Rollen Benutzern, benutzererweiterten Rollen oder Systemrollen erteilen:
Außerdem können Sie die WITH ADMIN OPTION-Klausel nur beim Erteilen von SYS_AUTH_DBA_ROLE zusammen mit der WITH NO SYSTEM PRIVILEGE INHERITANCE-Klausel verwenden. Sie können nie die WITH NO SYSTEM PRIVILEGE INHERITANCE-Klausel zusammen mit der WITH ADMIN ONLY OPTION-Klausel verwenden.
Das Deaktivieren der Vererbung von Systemprivilegien für einen Benutzer ist nur dann sinnvoll, wenn Sie vorhaben, den Benutzer in eine benutzererweiterte Rolle zu konvertieren.
Siehe Änderungen des Vererbungsverhaltens für einige Berechtigungen, die zu Rollen geworden sind
object-level-privilege
ALL-Privileg Dieses Privileg erteilt die Privilegien ALTER, DELETE, INSERT, REFERENCES, SELECT und UPDATE für Tabellen. Dieses Privileg erteilt die Privilegien DELETE, INSERT und UPDATE für Ansichten.
ALTER-Privileg Dieses Privileg ermöglicht es dem Benutzer, die benannte Tabelle mit der ALTER TABLE-Anweisung zu ändern. Für Ansichten ist dieses Privileg nicht zulässig.
DELETE-Privileg Dieses Privileg ermöglicht es dem Benutzer, Zeilen aus der benannten Tabelle oder Ansicht zu löschen.
INSERT-Privileg Dieses Privileg ermöglicht es dem Benutzer, Zeilen in die benannte Tabelle oder Ansicht einzufügen.
LOAD-Privileg Dieses Privileg ermöglicht es dem Benutzer, die benannte Tabelle zu laden.
REFERENCES-Privileg Dieses Privileg ermöglicht es dem Benutzer, Indizes für die benannte Tabelle zu erstellen und für die Fremdschlüssel, die die benannten Tabellen referenzieren. Wenn Spaltennamen angegeben sind, kann der Benutzer nur diese Spalten referenzieren. REFERENCES-Privilegien für Spalten können nicht für Ansichten, sondern nur für Tabellen erteilt werden. INDEX ist ein Synonym für REFERENCES.
SELECT-Privileg Dieses Privileg ermöglicht es dem Benutzer, Informationen in der betreffenden Ansicht oder Tabelle anzuzeigen. Wenn Spaltennamen angegeben sind, können die Benutzer lediglich diese Spalten ansehen. SELECT-Privilegien für Spalten können nicht für Ansichten, sondern nur für Tabellen erteilt werden.
TRUNCATE-Privileg Dieses Privileg ermöglicht es dem Benutzer, das benannte Objekt zu kürzen.
UPDATE-Privileg Dieses Privileg ermöglicht es dem Benutzer, Zeilen in der betreffenden Ansicht oder Tabelle zu aktualisieren. Wenn Spaltennamen angegeben sind, kann der Benutzer nur diese Spalten aktualisieren.
WITH GRANT OPTION Wenn WITH GRANT OPTION angegeben wird, erhält die angegebene Benutzer-ID auch die Berechtigung, dasselbe Privileg anderen Benutzer-IDs zu erteilen. Mitglieder von Gruppen erben WITH GRANT OPTION nicht, wenn dies einer Gruppe erteilt wird.
GRANT SET USER
user-list
Geben Sie die kommagetrennte Liste aller Benutzer-IDs (Zielbenutzer) ein, die grantee-list impersonieren kann. Beispiel: GRANT SET USER(u1, u2, u3)...
ANY [WITH ROLES target_role_list]-Klausel Legen Sie fest, wen der grantee impersonieren kann, ohne bestimmte Benutzer-IDs anzugeben.
Wenn nur ANY angegeben wird, kann der Benutzer jeden anderen Benutzer impersonieren. Dies ist die Standardeinstellung.
Wenn ANY WITH ROLES role-list angegeben wird, können Benutzer in grantee-list alle Benutzer impersonieren, die mindestens eine der in role-list aufgeführten Rollen haben, wobei role-list eine kommagetrennte Liste von Rollen ist.
WITH ADMIN [ONLY] OPTION-Option Die Klauseln WITH ADMIN OPTION und WITH ADMIN ONLY OPTION können nur zusammen mit der ANY-Klausel angegeben werden.
GRANT CHANGE PASSWORD
user-list Geben Sie eine kommagetrennte Liste von Benutzern an, für die der grantee Kennwörter ändern kann.
ANY [WITH ROLES role-list] Legen Sie fest, für wen der grantee das Kennwort ändern kann, ohne bestimmte Benutzer-IDs anzugeben.
Wenn nur ANY angegeben wird, kann der Benutzer das Kennwort für jeden Benutzer ändern. Dies ist die Standardeinstellung.
Wenn ANY WITH ROLES role-list angegeben wird, kann der grantee das Kennwort für alle Benutzer ändern, die mindestens eine der in role-list aufgeführten Rollen haben, wobei role-list eine kommagetrennte Liste von Rollen ist.
WITH ADMIN [ONLY] OPTION-Option Die Klauseln WITH ADMIN OPTION und WITH ADMIN ONLY OPTION können nur zusammen mit der ANY-Klausel angegeben werden.
Sie können Privilegien für deaktivierte Objekte erteilen. Privilegien für deaktivierte Objekte werden in der Datenbank gespeichert und treten in Kraft, wenn das betreffende Objekt aktiviert wird.
Mit Ausnahme der SYS-Rolle können Sie einer Systemrolle zusätzliche Privilegien und Rollen erteilen und entziehen, sofern Sie Administrationsrechte für die zu erteilenden bzw. zu entziehenden Privilegien und Rollen haben.
Wenn Sie SET USER einem Benutzer mehrmals erteilen und dabei unterschiedliche Benutzer-IDs angeben, die der Benutzer impersonieren kann, werden zusätzliche Benutzer zur Liste derjenigen hinzugefügt, die der Benutzer impersonieren kann. (Die zuvor erteilten Privilegien werden also nicht überschrieben.)
Das Erteilen von Impersonierungsrechten (GRANT SET USER) sagt nichts darüber aus, ob ein Benutzer einen anderen Benutzer erfolgreich impersonieren kann. Die Auswertung, ob ein Benutzer einen anderen Benutzer impersonieren kann, erfolgt, wenn die betreffende Benutzer-ID durch Ausführen einer SETUSER-Anweisung versucht, die Impersonierung eines anderen Benutzers zu starten. Der impersonierende Benutzer muss das SET USER-Systemprivileg haben und außerdem die erforderlichen Mindestkriterien für die Impersonierung erfüllen.
Sie benötigen Administrationsrechte für alle zu erteilenden Privilegien und Rollen.
Wenn Sie Privilegien auf Objektebene erteilen möchten, benötigen Sie außerdem die MANAGE ANY OBJECT PRIVILEGE-Systemprivileg mit Administrationsrechten.
Keine
SQL/2008 Erweiterung des Herstellers.
Privilegien an Rollen erteilen Wenn Sie der Rolle RoleA das CREATE ANY OBJECT-Systemprivileg erteilen möchten, ohne ihr Administrationsrechte zu geben, führen Sie die folgende Anweisung aus:
GRANT CREATE ANY OBJECT TO RoleA; |
Wenn Sie der Rolle RoleA das CREATE ANY OBJECT-Systemprivileg erteilen möchten, zusammen mit der Möglichkeit, Benutzern und anderen Rollen das Systemprivileg zu erteilen oder zu entziehen, führen Sie die folgende Anweisung aus:
GRANT CREATE ANY OBJECT TO RoleA WITH ADMIN OPTION; |
Wenn Sie der Rolle RoleA Administrationsrechte für das BACKUP DATABASE-Systemprivileg erteilen möchten, aber nicht die Möglichkeit, das BACKUP DATABASE-Privileg zu nutzen, führen Sie die folgende Anweisung aus:
GRANT BACKUP DATABASE TO RoleA WITH ADMIN ONLY OPTION; |
Benutzern Rollen erteilen Wenn Sie dem Benutzer Bob die Rolle SecurityRole ohne Administrationsrechte erteilen möchten, führen Sie die folgende Anweisung aus:
GRANT ROLE SecurityRole TO Bob; |
Wenn Sie der Rolle RoleB alle RoleA zugeordneten Privilegien erteilen möchten, aber keine Administrationsrechte für RoleA, führen Sie die folgende Anweisung aus:
GRANT ROLE RoleA TO RoleB; |
Wenn Sie der Benutzerin Jane die Rolle RoleB einschließlich der dazugehörigen Administrationsrechte erteilen möchten, führen Sie die folgende Anweisung aus:
GRANT ROLE RoleB TO Jane WITH ADMIN OPTION; |
Wenn Sie dem Benutzer John die Administrationsrechte für RoleB erteilen möchten, jedoch ohne die Möglichkeit, diese Rolle zu nutzen, führen Sie die folgende Anweisung aus:
GRANT ROLE RoleB TO John WITH ADMIN ONLY OPTION; |
Benutzern SET USER erteilen Im folgenden Beispiel wird festgelegt, dass User4 und User5 die User1, User2 und User3 impersonieren können.
GRANT SET USER ( User1, User2, User3 ) TO User4, User5; |
Im folgenden Beispiel wird festgelegt, dass User1 alle Benutzer in der Datenbank impersonieren kann. Außerdem kann User1 das SET USER-Systemprivileg anderen Benutzern erteilen.
GRANT SET USER (ANY) TO User1 WITH ADMIN OPTION; |
Im folgenden Beispiel wird festgelegt, dass User1 alle Benutzer impersonieren kann, denen die SYS_AUTH_BACKUP_ROLE-Kompatibilitätsrolle erteilt wurde.
GRANT SET USER (ANY WITH ROLES SYS_AUTH_BACKUP_ROLE) TO User1; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |