Abrufen von Berechtigungsnamen mit erteilten Zugriffsrechten

Über die Verwaltungssicht PRIVILEGES und andere Verwaltungssichten können Sie Informationen über die Berechtigungsnamen abrufen, denen Zugriffsrechte in einer Datenbank erteilt wurden.

Informationen zu dieser Task

Beispiel: Mit der folgenden Abfrage werden alle expliziten Zugriffsrechte und Berechtigungs-IDs, denen sie erteilt wurden, sowie weitere Informationen über die Verwaltungssicht PRIVILEGES abgerufen:
SELECT AUTHID, PRIVILEGE, OBJECTNAME, OBJECTSCHEMA, OBJECTTYPE 
       FROM SYSIBMADM.PRIVILEGES
In der folgenden Abfrage wird die Verwaltungssicht AUTHORIZATIONIDS verwendet, um nach allen Berechtigungs-IDs zu suchen, denen Zugriffsrechte oder Berechtigungen erteilt wurden, und um die entsprechenden Typen anzuzeigen:
SELECT AUTHID, AUTHIDTYPE FROM SYSIBMADM.AUTHORIZATIONIDS
Mit der Verwaltungssicht SYSIBMADM.OBJECTOWNERS und der Tabellenfunktion SYSPROC.AUTH_LIST_GROUPS_FOR_AUTHID können Sie nach sicherheitsbezogenen Informationen suchen.
Vor Version 9.1 enthielt keine einzelne Systemkatalogsicht Informationen zu allen Zugriffsrechten. Bei Releases vor Version 9.1 werden mithilfe der folgenden Anweisung sämtliche Berechtigungsnamen mit Zugriffsrechten abgerufen:
    SELECT DISTINCT GRANTEE, GRANTEETYPE, 'DATABASE' FROM SYSCAT.DBAUTH
   UNION
   SELECT DISTINCT GRANTEE, GRANTEETYPE, 'TABLE   ' FROM SYSCAT.TABAUTH
   UNION
   SELECT DISTINCT GRANTEE, GRANTEETYPE, 'PACKAGE ' FROM SYSCAT.PACKAGEAUTH
   UNION
   SELECT DISTINCT GRANTEE, GRANTEETYPE, 'INDEX   ' FROM SYSCAT.INDEXAUTH
   UNION
   SELECT DISTINCT GRANTEE, GRANTEETYPE, 'COLUMN  ' FROM SYSCAT.COLAUTH
   UNION
   SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SCHEMA  ' FROM SYSCAT.SCHEMAAUTH
   UNION
   SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SERVER  ' FROM SYSCAT.PASSTHRUAUTH
   ORDER BY GRANTEE, GRANTEETYPE, 3

Die durch diese Anweisung abgerufene Liste sollte in regelmäßigen Abständen mit Listen von Benutzer- und Gruppennamen verglichen werden, die in der Sicherheitseinrichtung des Systems definiert sind. Auf diese Weise können die Berechtigungsnamen ermittelt werden, die nicht mehr gültig sind.

Anmerkung: Wenn Sie ferne Datenbankclients unterstützen, ist es möglich, dass der Berechtigungsname nur auf dem fernen Client und nicht auf Ihrer Datenbankservermaschine definiert ist.