Wenn Sie in Datenbanken vor Version 16.0 die Berechtigungen DBA, REMOTE DBA, BACKUP, RESOURCE und VALIDATE einer Gruppe erteilt haben, wurden die zugrunde liegenden Berechtigungen nicht von den Mitgliedern der Gruppe geerbt.
Nun ist jedoch das Standardverhalten beim Erteilen jeder Rolle (einschließlich SYS_AUTH_DBA_ROLE, SYS_RUN_REPLICATION_ROLE, SYS_AUTH_BACKUP_ROLE, SYS_AUTH_RESOURCE_ROLE und SYS_AUTH_VALIDATE_ROLE) an eine benutzerdefinierte Rolle, dass diejenigen, denen die benutzerdefinierte Rolle erteilt wird, die diesen Rollen zugrunde liegenden Systemprivilegien erben.
Angenommen, Sie haben einen Benutzer, UserA. Sie erteilen UserA das ALTER ANY OBJECT-Systemprivileg. Danach beschließen Sie, UserA zu einer Rolle zu erweitern, und erteilen diese Rolle anschließend UserB. Nun möchten Sie UserA die SYS_AUTH_DBA_ROLE-Systemrolle erteilen, möchten aber nicht, dass UserB alle Privilegien erbt, die die SYS_AUTH_DBA_ROLE-Systemrolle gewährt. Deshalb erteilen Sie die SYS_AUTH_DBA_ROLE-Systemrolle folgendermaßen:
GRANT ROLE SYS_AUTH_DBA_ROLE TO userA WITH NO SYSTEM PRIVILEGE INHERITANCE; |
In diesem Szenario erbt UserB nur das ALTER ANY OBJECT-Systemprivileg von UserA.
Um das Nichtvererbungsverhalten dieser Rollen während des Upgrades beizubehalten, verfügt SQL Anywhere über eine WITH NO SYSTEM PRIVILEGE INHERITANCE Klausel in der GRANT ROLE-Anweisung. Wenn Sie Anwendungen haben, die Sie auf die neue GRANT-Syntax umstellen, müssen Sie diese Klausel ebenfalls angeben. Diese Klausel ist nur für die Verwendung mit diesen bestimmten Rollen vorgesehen.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |