Objektberechtigungen erteilen
Wenn Sie einem Benutzer oder einer Gruppe Objektberechtigungen erteilen, müssen Sie entscheiden, ob die Berechtigung für mindestens eine Datenbank, für mindestens ein Schema oder global für alle Datenbanken im System gelten soll. In Releases vor 7.0.3 haben Administratoren globale oder lokale Berechtigungen mithilfe von GRANT oder REVOKE an bestimmten Positionen zugewiesen. Zum Beispiel:
- Für eine globale Berechtigung würden Sie eine Verbindung zur Systemdatenbank herstellen und dem Benutzer oder der Gruppe die Berechtigung für die Objektklasse erteilen.
- Für eine datenbankspezifische Berechtigung würden Sie eine Verbindung zur entsprechenden Datenbank herstellen und dem Benutzer oder der Gruppe die Berechtigung für das Objekt erteilen.
Ab Release 7.0.3 können Sie diese Methoden zum Zuweisen lokaler und globaler Berechtigungen weiterhin verwenden. Sie können jedoch außerdem mit vollständig qualifizierten Objektnamen (Datenbank.Schema.Obj_ oder Objektklasse) und Klassen den Gültigkeitsbereich über eine Datenbank-/Schemaverbindung festlegen. Sie müssen der Benutzer mit Administratorberechtigung sein oder Sie müssen über die Berechtigungen zum Ändern der Berechtigungen der Benutzer oder Gruppen verfügen, die Sie verwalten wollen.
Im vollständig qualifizierten Objektnamen können Sie Folgendes angeben:
- Für eine Datenbank können Sie einen Datenbanknamen angeben, um die Berechtigung auf eine bestimmte Datenbank zu begrenzen, oder Sie können über das Schlüsselwort ALL alle (auch die zukünftig erstellten) Datenbanken angeben.
- Für ein Schema können Sie einen Schemanamen angeben, um die Berechtigung auf ein bestimmtes Schema zu begrenzen, oder Sie können über das Schlüsselwort ALL alle (auch die zukünftig erstellten) Schemas anzugeben.
- Für den Objekt- oder Objektklassenwert können Sie einen Objektnamen angeben, um die Berechtigung auf dieses Objekt zu begrenzen. Sie können auch eine Objektklasse wie z. B. Datenbank, Tabelle, Ansicht, Synonym angeben, um die Berechtigung allen Objekten dieses Typs zuzuweisen.
Soll z. B. user1 die Berechtigung zum Zugreifen auf alle Datenbanken und Schemas erteilt werden, führen Sie den folgenden Befehl über eine beliebige Datenbankverbindung aus:
GRANT list ON all.all.database TO user1;
GRANT
Wenn Sie auf diese Art eine Berechtigung global erteilen, können Sie den Zugriff auf bestimmte Datenbanken begrenzen, indem Sie den Benutzerzugriff in dieser Datenbank ändern. Wenn z. B. user1 keinen Zugriff auf die Datenbank namens secure_info haben soll, müssen Sie user1 eine Gruppe von reduzierten Zugriffsberechtigungen für diese Zieldatenbank erteilen. Zum Beispiel:
GRANT select ON secure_info TO user1;
GRANT
In diesem Beispiel hat der Benutzer Auswahlzugriff auf die Datenbank, was nicht ausreicht, um eine Verbindung zur Datenbank zuzulassen, wenn user1 nicht der Eigner der Datenbank ist. Weitere Informationen zu Berechtigungen finden Sie im IBM® Netezza® System Administrator's Guide.