Standardrollen
Eine Rolle kann als default-Rolle gewährt werden, indem der Rolle DEFAULT
in der GRANT
-Anweisung vorangestellt wird.Das Gewähren von Rollen als Standardrolle an Benutzer vereinfacht die Verwaltung von Berechtigungen, da es möglich ist, Berechtigungen für eine Rolle zu gruppieren und diese Gruppe von Berechtigungen einem Benutzer zu erteilen, ohne dass der Benutzer die Rolle explizit angeben muss.Benutzer können mehrere Standardrollen erhalten, die ihnen alle Berechtigungen dieser Standardrollen gewähren.
Die Auswirkungen einer Standardrolle hängen davon ab, ob die Rolle einem Benutzer oder einer anderen Rolle zugewiesen wird:
-
Wenn einem Benutzer eine Rolle als Standardrolle zugewiesen wird, wird die Rolle automatisch aktiviert und ihre Berechtigungen werden auf den Benutzer angewendet, ohne dass die Rolle explizit angegeben werden muss.
Standardmäßig aktive Rollen werden nicht von
CURRENT_ROLE
zurückgegeben, aber die FunktionRDB$ROLE_IN_USE
kann verwendet werden, um zu überprüfen, ob eine Rolle ist gerade aktiv. -
Wenn eine Rolle einer anderen Rolle als Standardrolle zugewiesen wird, werden die Rechte dieser Rolle nur dann automatisch auf den Benutzer angewendet, wenn dem Benutzer die primäre Rolle als Standardrolle zugewiesen wird, andernfalls muss die primäre Rolle explizit angegeben werden (mit anderen Worten, es verhält sich genauso, als ob die sekundäre Rolle ohne die
DEFAULT
-Klausel gewährt wurde).Für eine Reihe von gewährten Rollen müssen alle Rollen als Standardrolle zugewiesen werden, damit sie automatisch angewendet werden.Das heißt, für "`GRANT DEFAULT ROLEA TO ROLE ROLEB`,
GRANT ROLEB TO ROLE ROLEC
,GRANT DEFAULT ROLEC TO USER USER1
ist standardmäßig nurROLEC
fürBENUTZER1
aktiv.Um die Privilegien vonROLEA
undROLEB
zu übernehmen, mussROLEC
explizit angegeben werden oderROLEB
mussDEFAULT
fürROLEC
gewährt werden.