Rollen verwalten - Ihre Homepage bei Arcor

Werbung
19
.................................
Rollen verwalten
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Ziele
Ziele
Nach dieser Lektion sollten Sie Folgendes können:
•
•
•
•
•
19-2
Rollen anlegen und ändern
Verfügbarkeit von Rollen steuern
Rollen löschen
Vordefinierte Rollen verwenden
Rollen-Informationen aus dem Data Dictionary
ausgeben
Copyright  Oracle Corporation, 1999. All rights reserved.
.....................................................................................................................................................
19-2
Oracle8i Datenbankadministration Teil I
Überblick
.....................................................................................................................................................
Überblick
Rollen
Benutzer
A
Rollen
C
B
HR_MGR
HR_CLERK
Privilegien
SELECT ON
EMP
CREATE
TABLE
19-3
INSERT ON
EMP
CREATE
SESSION
UPDATE
ON EMP
Copyright  Oracle Corporation, 1999. All rights reserved.
Was ist eine Rolle?
Oracle bietet mit Rollen eine einfache und sichere Privilegienverwaltung. Rollen sind
benannte Gruppen von zusammengehörenden Privilegien, die an andere Benutzer oder
andere Rollen vergeben werden können. Sie vereinfachen die Verwaltung von
Privilegien in der Datenbank.
Eigenschaften von Rollen
• werden mit denselben Befehlen wie System-Privilegien an Benutzer vergeben und
Benutzern entzogen
• können an Benutzer oder andere Rollen vergeben werden, außer sich selbst (auch
nicht indirekt)
• können aus System- und Objekt-Privilegien bestehen
• können für jeden Benutzer, der die Rolle zugewiesen hat, aktiviert oder deaktiviert
werden
• können Passwörter zum Aktivieren benötigen
• der Name einer Rolle muss innerhalb der bestehenden Benutzernamen und
Rollennamen eindeutig sein
• haben keinen Eigentümer; gehören in kein Schema
• Rollen-Beschreibungen werden im Data Dictionary gespeichert
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-3
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Vorteile von Rollen
•
•
•
•
•
•
19-4
Vereinfachte Vergabe von Privilegien
Dynamische Privilegienverwaltung
Selektive Verfügbarkeit von Privilegien
Vergabe durch das Betriebssystem
Kein kaskadierendes Entziehen von Privilegien
Verbesserte Performance
Copyright  Oracle Corporation, 1999. All rights reserved.
Vergabe von Privilegien vereinfachen
Verwenden Sie Rollen, um die Privilegienverwaltung zu vereinfachen. Sie müssen
nicht immer wieder dieselben Privilegien an mehrere Benutzer vergeben, sondern
vergeben die Privilegien an eine Rolle und vergeben dann die Rolle an die Benutzer.
Dynamische Privilegienverwaltung
Wenn die zu einer Rolle gehörenden Privilegien geändert werden, erhalten alle
Benutzer, denen die Rolle zugewiesen wurde, automatisch und sofort die geänderten
Privilegien.
Selektive Verfügbarkeit von Privilegien
Rollen können aktiviert und deaktiviert werden, um Privilegien temporär ein- oder
auszuschalten. Mit dem Aktivieren einer Rolle können Sie auch überprüfen, ob diese
Rolle an einen Benutzer vergeben wurde.
Vergabe durch das Betriebssystem
Sie können mit Befehlen oder Utilities des Betriebssystems Rollen an Benutzer in der
Datenbank zuweisen.
Kein kaskadierendes Entziehen von Privilegien
Objekt-Privilegien können entzogen werden, ohne dass Privilegien kaskadierend
entzogen werden.
.....................................................................................................................................................
19-4
Oracle8i Datenbankadministration Teil I
Überblick
.....................................................................................................................................................
Verbesserte Performance
Wenn Rollen deaktiviert werden, müssen weniger Privilegien beim Ausführen einer
Anweisung überprüft werden. Die Verwendung von Rollen verringert die Anzahl der
Grant-Einträge, die im Data Dictionary gespeichert sind.
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-5
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Rollen anlegen und ändern
Rollen anlegen
CREATE ROLE sales_clerk;
CREATE ROLE hr_clerk
IDENTIFIED BY bonus;
CREATE ROLE hr_manager
IDENTIFIED EXTERNALLY;
19-5
Copyright  Oracle Corporation, 1999. All rights reserved.
Syntax
Mit dem folgenden Befehl legen Sie eine Rolle an
CREATE ROLE role [NOT IDENTIFIED | IDENTIFIED
{BY password | EXTERNALLY }]
mit:
role
NOT IDENTIFIED
IDENTIFIED
BY password
EXTERNALLY
Name der Rolle
es wird keine Überprüfung durchgeführt,
wenn die Rolle aktiviert wird
es wird eine Überprüfung durchgeführt,
wenn die Rolle aktiviert wird
Passwort, das der Benutzer zum Aktivieren
der Rolle eingeben muss
der Benutzer wird beim Aktivieren der Rolle
von einem externen Service überprüft
(Betriebssystem oder Service eines DrittAnbieters)
.....................................................................................................................................................
19-6
Oracle8i Datenbankadministration Teil I
Rollen anlegen und ändern
.....................................................................................................................................................
So legen Sie mit dem Oracle Enterprise Manager eine Rolle an
1 Starten Sie den Security Manager und melden Sie sich direkt bei der Datenbank
an:
Start—>Programs—>Oracle - EMV2 Home—>DBA Management Pack
—>Security Manager
2 Geben Sie die Anmelde-Informationen ein und klicken Sie OK.
3 Wählen Sie den Ordner Roles. Wählen Sie Create aus dem Kontext-Menü, das Sie
mit der rechten Maustaste anzeigen.
4 Geben Sie den Namen der Rolle ein und wählen Sie die Identifizierungsmethode.
5 Optional können Sie Rollen und Privilegien an die neue Rolle vergeben, indem Sie
die Register Roles, System Privileges oder Object Privileges anklicken (wurde in
einer früheren Lektion bereits behandelt).
6 Klicken Sie Create.
Hinweis: Der Befehl CREATE ROLE IDENTIFIED GLOBALLY legt fest, dass die
Überprüfung von Rollen vom Oracle Security Server durchgeführt wird.
Der Oracle Security Server ist ein Sicherheits-Produkt, mit dem Sie Rollen und
Benutzer in einer verteilten Umgebung von Oracle zentral einrichten können.
Benutzer und Rollen, die mit dem Oracle Security Server definiert werden, können
übergreifend über mehrere Datenbanken verwendet werden. Diese Benutzer und
Rollen werden globale Benutzer bzw. globale Rollen genannt. Weitere Informationen
finden Sie im Handbuch Oracle8i Server Distributed Database Systems.
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-7
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Vordefinierte Rollen verwenden
Rollen-Name
Beschreibung
CONNECT,
RESOURCE
Diese beiden Rollen werden für
Abwärtskompatibilität angeboten.
DBA
Alle System-Privilegien mit
WITH ADMIN OPTION
EXP_FULL_DATABASE
Privilegien zum Exportieren der
Datenbank
IMP_FULL_DATABASE
Privilegien zum Importieren der
Datenbank
DELETE_CATALOG_ROLE
DELETE-Privilegien auf
Data Dictionary-Tabellen
EXECUTE_CATALOG_ROLE
EXECUTE-Privilegien auf
Data Dictionary Packages
SELECT_CATALOG_ROLE
SELECT-Privilegien auf Data
Dictionary-Tabellen
19-6
Copyright  Oracle Corporation, 1999. All rights reserved.
Vordefinierte Rollen
Die aufgeführten Rollen sind automatisch für Oracle Datenbanken definiert. Die
Rollen CONNECT und RESOURCE werden zur Abwärtskompatibilität zu früheren
Versionen von Oracle angeboten. Sie können auf die gleiche Weise geändert werden,
wie die anderen Rollen einer Oracle Datenbank.
Die Rollen EXP_FULL_DATABASE und IMP_FULL_DATABASE dienen der
Vereinfachung beim Aufruf der Import- und Export-Utilities.
Die Rollen DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE und
SELECT_CATALOG_ROLE dienen dem Zugriff auf Data Dictionary-Views und
Packages. Diese Rollen können an Benutzer vergeben werden, die nicht die Rolle
DBA besitzen, aber Zugriff auf Views und Tabellen des Data Dictionary benötigen.
Andere spezielle Rollen
Der Oracle Server legt noch andere Rollen an, die Sie für die Administration der
Datenbank autorisieren. Bei vielen Betriebssystemen werden diese Rollen OSOPER
und OSDBA genannt. Diese Namen können auf Ihrem Betriebssystem anders lauten.
Weitere Rollen werden von SQL-Skripts angelegt, die mit der Datenbank geliefert
werden. Zum Beispiel werden die Rollen AQ_ADMINISTRATOR_ROLE und
AQ_USER_ROLE durch das Skript dbmsaqad.sql angelegt. Diese Rollen werden
von der Funktion Advanced Queuing verwendet.
Andere spezielle Rollen (Fortsetzung)
Hinweise
• Auf manchen Plattformen, wie Solaris, erhalten Privilegienempfänger der Rolle
.....................................................................................................................................................
19-8
Oracle8i Datenbankadministration Teil I
Rollen anlegen und ändern
.....................................................................................................................................................
•
RESOURCE explizit auch das Privileg UNLIMITED TABLESPACE, obwohl
dieses Privileg nicht der Rolle zugewiesen ist.
Sie sollten sich nicht auf diese Rollen verlassen. Es wird empfohlen, dass Sie Ihre
eigenen Rollen für die Datenbanksicherheit entwerfen. Diese Rollen werden
eventuell von zukünftigen Oracle Server Versionen nicht automatisch angelegt.
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-9
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Rollen ändern
ALTER ROLE sales_clerk
IDENTIFIED BY commission;
ALTER ROLE hr_clerk
IDENTIFIED EXTERNALLY;
ALTER ROLE hr_manager
NOT IDENTIFIED;
19-7
Copyright  Oracle Corporation, 1999. All rights reserved.
Rollen ändern
Für eine Rolle kann nur die Berechtigungsmethode geändert werden.
Syntax
Mit dem folgenden Befehl ändern Sie die Rolle:
ALTER ROLE role {NOT IDENTIFIED | IDENTIFIED
{BY password | EXTERNALLY }};
mit:
role
NOT IDENTIFIED
IDENTIFIED
BY password
EXTERNALLY
Name der Rolle
es wird keine Überprüfung durchgeführt,
wenn die Rolle aktiviert wird
es wird eine Überprüfung durchgeführt,
wenn die Rolle aktiviert wird
Passwort, das der Benutzer zum Aktivieren
der Rolle eingeben muss
der Benutzer wird beim Aktivieren der Rolle
von einem externen Service überprüft
(Betriebssystem oder Service eines DrittAnbieters)
So ändern Sie mit dem Oracle Enterprise Manager eine Rolle
1 Starten Sie den Security Manager und melden Sie sich direkt bei der Datenbank
an:
Start—>Programs—>Oracle - EMV2 Home—>DBA Management Pack
—>Security Manager
.....................................................................................................................................................
19-10
Oracle8i Datenbankadministration Teil I
Rollen anlegen und ändern
.....................................................................................................................................................
2 Geben Sie die Anmelde-Informationen ein und klicken Sie OK.
3 Erweitern Sie den Ordner Roles.
4 Wählen Sie die Rolle.
5 Bestimmen Sie die Identifizierungsmethode.
6 Klicken Sie Apply.
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-11
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Rollen zuweisen
Rollen zuweisen
GRANT sales_clerk TO scott;
GRANT hr_clerk,
TO hr_manager;
GRANT hr_manager TO scott
WITH ADMIN OPTION;
Copyright  Oracle Corporation, 1999. All rights reserved.
19-8
Syntax
Sie weisen einem Benutzer ein Rolle mit dem gleichen Befehl zu, mit dem ein SystemPrivileg an einen Benutzer vergeben wird:
GRANT role [, role ]...
TO
{user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[WITH ADMIN OPTION]
mit:
role
Rolle, die vergeben wird oder Rolle, die die
zu vergebende Rolle erhält
user
Benutzer, der die Rolle erhält
role
Rolle, die die Rolle erhält
PUBLIC
vergibt die Rolle an alle Benutzer
WITH ADMIN OPTION erlaubt dem Berechtigungsempfänger, die
Rolle an andere Benutzer oder Rollen
weiterzugeben. Wenn Sie eine Rolle mit
dieser Option vergeben, kann der
Berechtigungsempfänger die Rollen an
andere Benutzer vergeben und sie entziehen,
ändern oder löschen.
.....................................................................................................................................................
19-12
Oracle8i Datenbankadministration Teil I
Rollen zuweisen
.....................................................................................................................................................
Dem Benutzer, der eine Rolle anlegt, wird implizit die Rolle mit ADMIN OPTION
zugewiesen. Ein Benutzer, der eine Rolle nicht mit ADMIN OPTION erhalten hat,
benötigt das System-Privileg GRANT ANY ROLE, um Rollen an andere Benutzerr zu
vergeben und sie zu entziehen.
So weisen Sie mit dem Oracle Enterprise Manager eine Rolle zu
1 Starten Sie den Security Manager und melden Sie sich direkt bei der Datenbank an
Start—>Programs—>Oracle - EMV2 Home—>DBA Management Pack
—>Security Manager
2 Geben Sie die Anmelde-Informationen ein und klicken Sie Ok.
3 Erweitern Sie die Ordner Users oder Roles.
4 Wählen Sie den Benutzer oder die Rolle.
5 Wählen Sie das Register Role oder System Privileges.
6 Wählen Sie die Rolle, die vergeben werden soll.
7 Klicken Sie auf den Pfeil nach unten, um die Rolle zur Liste der vergebenen
Rollen hinzuzufügen.
8 Sie können, wenn nötig, weitere Rollen hinzufügen.
9 Klicken Sie Apply.
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-13
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Verfügbarkeit von Rollen steuern
Default-Rollen einrichten
ALTER USER scott
DEFAULT ROLE hr_clerk, sales_clerk;
ALTER USER scott DEFAULT ROLE ALL;
ALTER USER scott DEFAULT ROLE ALL EXCEPT
hr_clerk;
ALTER USER scott DEFAULT ROLE NONE;
Copyright  Oracle Corporation, 1999. All rights reserved.
19-9
Default-Rollen
Einem Benutzer können viele Rollen zugewiesen sein. Eine Default-Rolle ist eine
Untermenge dieser Rollen, die automatisch eingeschaltet ist, wenn sich der Benutzer
anmeldet. Defaultmäßig werden beim Anmelden alle Rollen eingeschaltet, die dem
Benutzer zugewiesen sind. Mit dem Befehl ALTER USER begrenzen Sie die DefaultRollen für einen Benutzer.
Syntax
Mit folgendem Befehl weisen Sie einem Benutzer Default-Rollen zu:
ALTER USER user DEFAULT ROLE
{role [,role]... | ALL [EXCEPT role [,role]... ] | NONE}
mit:
user
role
ALL
EXCEPT
Name des Benutzers, an den die Rolle
vergeben wird
Default-Rolle für den Benutzer
außer den in der Klausel EXCEPT
angegebenen Rollen werden alle an den
Benutzer vergebenen Rollen DefaultRollen. ALL ist der Defaultwert.
legt fest, dass die folgenden Rollen nicht
Default-Rollen werden
.....................................................................................................................................................
19-14
Oracle8i Datenbankadministration Teil I
Verfügbarkeit von Rollen steuern
.....................................................................................................................................................
Syntax (Fortsetzung)
NONE
der Benutzer hat keine Default-Rolle. Die
einzigen Privilegien, die der Benutzer nach
dem Anmelden besitzt, sind die ihm direkt
zugeordneten Privilegien.
Da die Rollen vergeben sein müssen, bevor sie als Default definiert werden können,
können Sie die Default-Rolle nicht mit dem Befehl CREATE USER setzen.
Bei Rollen, die mit einem Passwort authentisiert werden, wird das Passwort nicht
benötigt, wenn die Rolle eine Default-Rolle ist.
So weisen Sie mit dem Oracle Enterprise Manager Default-Rollen zu
1 Starten Sie den Security Manager und melden Sie sich direkt bei der Datenbank
an:
Start—>Programs—>Oracle - EMV2 Home—>DBA Management Pack
—>Security Manager
2 Geben Sie die Anmelde-Informationen ein und klicken Sie OK.
3 Erweitern Sie den Ordner Users.
4 Wählen Sie den Benutzer.
5 Wählen Sie das Register Role.
6 Wählen Sie die Default-Rollen in der Spalte Default aus.
7 Klicken Sie Apply.
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-15
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Rollen aktivieren und deaktivieren
•
Deaktivieren Sie eine Rolle, um die Rollen einen
Benutzer temporär zu entziehen.
•
Aktivieren Sie eine Rolle, um sie temporär zu
vergeben.
•
Der Befehl SET ROLE aktiviert und deaktiviert
Rollen.
•
Default-Rollen für Benutzer werden beim
Anmelden aktiviert.
•
Ein Passwort kann für das Aktivieren einer Rolle
erforderlich sein.
19-10
Copyright  Oracle Corporation, 1999. All rights reserved.
Rollen aktivieren und deaktivieren
Sie können Rollen aktivieren und deaktivieren, um temporär die mit den Rollen
verbundenen Privilegien verfügbar zu machen oder sie einzuschränken. Eine Rolle
muss zuerst an einen Benutzer vergeben sein, bevor sie aktiviert werden kann.
Wenn eine Rolle aktiviert ist, kann der Benutzer die Privilegien verwenden, die an die
Rolle vergeben sind. Wenn eine Rolle deaktiviert ist, kann der Benutzer die an die
Rolle vergebenen Privilegien nicht verwenden, außer das Privileg wurde an den
Benutzer direkt vergeben oder an eine andere aktivierte Rolle des Benutzers. Rollen
werden für eine Session aktiviert. Bei der nächsten Session sind die Default-Rollen
wieder die aktiven Rollen des Benutzers.
s
Rollen zum Aktivieren angeben
Der Befehl SET ROLE und die Prozedur DBMS_SESSION.SET_ROLE aktivieren
alle im Befehl angegebenen Rollen und deaktivieren alle anderen Rollen. Rollen
können von jedem Werkzeug oder Programm aktiviert werden, das PL/SQL-Befehle
erlaubt; eine Rolle kann jedoch in einer gespeicherten Prozedur nicht aktiviert werden.
Mit dem Befehl ALTER USER...DEFAULT ROLE können Sie die Rollen angeben,
die für einen Benutzer beim Anmelden aktiviert werden. Alle anderen Rollen sind
deaktiviert.
Ein Passwort kann für das Aktivieren einer Rolle erforderlich sein. Das Passwort muss
im Befehl SET ROLE angegeben werden, um die Rolle zu aktivieren. Default-Rollen
eines Benutzers benötigen kein Passwort; sie werden beim Anmelden aktiviert,
genauso wie Rollen ohne Passwort.
.....................................................................................................................................................
19-16
Oracle8i Datenbankadministration Teil I
Verfügbarkeit von Rollen steuern
.....................................................................................................................................................
Einschränkungen
Eine Rolle kann nicht aus einer gespeicherten Prozedur aktiviert werden, da diese
Aktion möglicherweise die Sicherheitsdomäne ändert (Menge von Privilegien), die
den Aufruf der Prozedur erlaubt. In PL/SQL können also Rollen in anonymen Blöcken
und Anwendungs-Prozeduren (z.B. Prozeduren von Oracle Forms) aktiviert und
deaktiviert werden, aber nicht in gespeicherten Prozeduren.
Wenn eine gespeicherte Prozedur den Befehl SET ROLE enthält, wird zur Laufzeit
folgender Fehler erzeugt:
ORA-06565: cannot execute SET ROLE from within stored procedure
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-17
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Rollen aktivieren und deaktivieren:
Beispiele
SET ROLE hr_clerk;
SET ROLE sales_clerk IDENTIFIED BY
commission;
SET ROLE ALL EXCEPT sales_clerk;
SET ROLE NONE;
19-11
Copyright  Oracle Corporation, 1999. All rights reserved.
Syntax
Mit dem folgenden Befehl aktivieren oder deaktivieren Sie Rollen:
SET ROLE {role [ IDENTIFIED BY PASSWORD ]
[, role [ IDENTIFIED BY PASSWORD ]]...
| ALL [ EXCEPT role [, role ] ...]
| NONE }
Der Befehl SET ROLE schaltet alle anderen, an den Benutzer vergebenen Rollen aus.
mit:
role
Name der Rolle
IDENTIFIED BY password
Passwort, das der Benutzer zum Aktivieren
der Rolle eingeben muss
ALL
außer den in der Klausel EXCEPT
angegebenen Rollen werden alle an den
Benutzer vergebenen Rollen aktiviert. Sie
können mit dieser Option keine Rollen mit
Passwort aktivieren.
EXCEPT role
legt fest, dass die folgenden Rollen nicht
aktiviert werden
NONE
keine an den Benutzer vergebene Rolle wird
Default-Rolle. Nur Privilegien, die direkt an
den Benutzer vergeben wurden, sind beim
Anmelden aktiv.
Die Option ALL ohne die Klausel EXCEPT funktioniert nur, wenn keine der zu
aktivierenden Rollen ein Passwort besitzt.
.....................................................................................................................................................
19-18
Oracle8i Datenbankadministration Teil I
Verfügbarkeit von Rollen steuern
.....................................................................................................................................................
Benutzern Rollen entziehen
REVOKE sales_clerk FROM scott;
REVOKE hr_manager FROM PUBLIC;
Copyright  Oracle Corporation, 1999. All rights reserved.
19-12
Syntax
Sie entziehen eine Rollen einem Benutzer mit dem gleichen Befehl, mit dem ein
System-Privileg einem Benutzer entzogen wird:
REVOKE role [, role ]...
FROM
{user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
mit:
role
user
PUBLIC
Rolle, die entzogen wird oder Rolle, von
der Rollen entzogen werden
Benutzer, dem die System-Privilegien oder
Rollen entzogen werden
entzieht das Privileg oder die Rolle allen
Benutzern
So entziehen Sie mit dem Oracle Enterprise Manager eine Rolle
1 Starten Sie den Security Manager und melden Sie sich direkt an der Datenbank an:
Start—>Programs—>Oracle - EMV2 Home—>DBA Management Pack
—>Security Manager
2 Geben Sie die Anmelde-Informationen ein und klicken Sie OK.
3 Erweitern Sie den Ordner Users oder Roles.
4 Wählen Sie den Benutzer oder die Rollen.
5 Wählen Sie das Register Roles oder System Privileges.
6 Wählen Sie unter Granted die Rollen, die Sie entziehen wollen.
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-19
Lektion 19: Rollen verwalten
.....................................................................................................................................................
7 Klicken Sie auf den Pfeil nach oben, um die Rolle aus der Liste der vergebenen
Rollen zu entfernen.
8 Klicken Sie Apply.
.....................................................................................................................................................
19-20
Oracle8i Datenbankadministration Teil I
Verfügbarkeit von Rollen steuern
.....................................................................................................................................................
Rollen löschen
DROP ROLE hr_manager;
19-13
Copyright  Oracle Corporation, 1999. All rights reserved.
Syntax
Sie können mit dem folgenden Befehl eine Rolle aus der Datenbank entfernen:
DROP ROLE role
mit:
role
Rolle, die entfernt wird
Wenn Sie eine Rolle löschen, entzieht der Oracle Server die Rolle allen Benutzern und
Rollen, an die sie vergeben wurde und entfernt sie aus der Datenbank.
Um eine Rolle löschen zu können, müssen Sie die Rolle mit ADMIN OPTION
erhalten haben oder das System-Privileg DROP ANY ROLE besitzen.
So entfernen Sie mit dem Oracle Enterprise Manager eine Rolle
1 Starten Sie den Security Manager und melden Sie sich direkt bei der Datenbank
an:
Start—>Programs—>Oracle - EMV2 Home—>DBA Management Pack
—>Security Manager
2 Geben Sie die Anmelde-Informationen ein und klicken Sie OK.
3 Erweitern Sie den Ordner Roles.
4 Wählen Sie die Rolle.
5 Wählen Sie Object—>Remove.
6 Bestätigen Sie die Dialogbox mit Yes.
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-21
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Richtlinien zum Anlegen von Rollen
Benutzer
BenutzerRollen
AnwendungsRollen
HR_CLERK
HR_MANAGER
PAY_CLERK
BENEFITS
PAYROLL
Privilegien für
BENEFITS
Privilegien für
PAYROLL
AnwendungsPrivilegien
19-14
Copyright  Oracle Corporation, 1999. All rights reserved.
Richtlinien zum Anlegen von Rollen
Da Rollen Privilegien für das Ausführen von Aufgaben enthalten, wird als Name der
Rollen üblicherweise die Anwendungsaufgabe oder der Job-Titel verwendet. Das
obige Beispiel verwendet sowohl Anwendungsaufgaben als auch Job-Titel für die
Rollennamen.
1 Legen Sie eine Rolle für jede Anwendungsaufgabe an. Der Name der
Anwendungsrolle entspricht einer Aufgabe der Anwendung, wie PAYROLL
(Lohnliste).
2 Weisen Sie der Anwendungsrolle die nötigen Privilegien zu, um die Aufgaben der
Anwendungsrolle ausführen zu können.
3 Legen Sie für jeden Benutzertyp eine Rolle an. Der Name der Benutzerrolle
entspricht einem Job-Titel, wie PAY_CLERK (Lohnabrechnung).
4 Vergeben Sie an Benutzerrollen nur Anwendungsrollen, keine individuellen
Privilegien.
5 Vergeben Sie Benutzer- und Anwendungsrollen an Benutzer.
Wenn eine Änderung der Anwendung neue Privilegien erfordert, um die Aufgabe
Lohnliste durchzuführen, muss der DBA die neuen Privilegien nur der
Anwendungsrolle PAYROLL zuweisen. Alle Benutzer, die aktuell diese Aufgabe
durchführen, erhalten die neuen Privilegien.
.....................................................................................................................................................
19-22
Oracle8i Datenbankadministration Teil I
Verfügbarkeit von Rollen steuern
.....................................................................................................................................................
Richtlinien für die Verwendung von
Passwörtern und Default-Rollen
Passwort-geschützte
Nicht-Default-Rolle
19-15
Default-Rolle
PAY_CLERK
PAY_CLERK_RO
INSERT-, UPDATE-,
DELETE- und
SELECT-Privilegien
SELECT-Privilegien
Copyright  Oracle Corporation, 1999. All rights reserved.
Passwörter verwenden
• Passwörter bieten zusätzliche Sicherheit, wenn eine Rolle aktiviert wird. Zum
Beispiel kann eine Anwendung von einem Benutzer ein Passwort verlangen, wenn
die Rolle PAY_CLERK aktiviert wird, da diese Rolle zum Ausstellen von Schecks
verwendet wird.
• Passwörter ermöglichen es, dass eine Rolle nur über eine Anwendung aktiviert
wird. Diese Methode wird im obigen Beispiel gezeigt.
– Der DBA hat den Benutzern zwei Rollen zugewiesen, PAY_CLERK und
PAY_CLERK_RO.
– An PAY_CLERK wurden alle Privilegien vergeben, die für die
Lohnbuchhaltung benötigt werden.
– Die Rolle PAY_CLERK_RO (RO für Read-Only) besitzt nur die SELECTPrivilegien auf den Tabellen, die für die Lohnbuchhaltung nötig sind.
– Der Benutzer kann sich bei SQL*Plus anmelden, um Abfragen durchzuführen,
aber er kann die Daten nicht verändern, da PAY_CLERK nicht die DefaultRolle ist und der Benutzer nicht das Passwort für PAY_CLERK kennt.
– Wenn sich der Benutzer bei der Lohn-Anwendung (payroll) anmeldet, aktiviert
diese die Rolle PAY_CLERK mit dem Passwort, das im Programm codiert ist.
Der Benutzer wird nicht zur Eingabe des Passworts aufgefordert.
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-23
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Informationen über die Rolle anzeigen
Informationen über die Rolle anzeigen
Rollen-View
Beschreibung
DBA_ROLES
Alle Rollen in der Datenbank
DBA_ROLE_PRIVS
An Benutzer und Rollen
zugewiesene Rollen
ROLE_ROLE_PRIVS
An Rollen zugewiesene Rollen
DBA_SYS_PRIVS
An Benutzer und Rollen
zugewiesene System-Privilegien
ROLE_SYS_PRIVS
An Rollen zugewiesene SystemPrivilegien
ROLE_TAB_PRIVS
An Rollen zugewiesene TabellenPrivilegien
SESSION_ROLES
Rollen, die für den Benutzer aktuell
aktiviert sind
19-16
Copyright  Oracle Corporation, 1999. All rights reserved.
Informationen über die Rolle abfragen
Viele der Data Dictionary-Views, die Informationen über Benutzer-Privilegien
enthalten, enthalten auch Informationen über Rollen-Privilegien.
SQL> SELECT role, password_required FROM dba_roles;
ROLE
PASSWORD
---------------------------------------CONNECT
NO
RESOURCE
NO
DBA
NO
...
..
SELECT_CATALOG_ROLE
NO
EXECUTE_CATALOG_ROLE
NO
DELETE_CATALOG_ROLE
NO
IMP_FULL_DATABASE
NO
EXP_FULL_DATABASE
NO
SALES_CLERK
YES
HR_CLERK
EXTERNAL
.....................................................................................................................................................
19-24
Oracle8i Datenbankadministration Teil I
Fein-abgestimmte Zugriffskontrolle
.....................................................................................................................................................
Fein-abgestimmte Zugriffskontrolle
Fein-abgestimmte Zugriffskontrolle
Benutzer
A
B
C
HR_ACCESS
Richtlinie
SELECT
INSERT
UPDATE
ORDERS
19-17
Copyright  Oracle Corporation, 1999. All rights reserved.
Was bedeutet fein-abgestimmte Zugriffskontrolle?
Mit der fein-abgestimmten Zugriffskontrolle können Sie Sicherheits-Richtlinien
(Policies) mit Funktionen implementieren; diese Sicherheits-Richtlinien weisen Sie
dann Tabellen oder Views zu. Die Datenbank erzwingt automatisch die Einhaltung der
Sicherheits-Richtlinien, egal wie auf die Daten zugegriffen wird.
Sie können:
• verschiedene Richtlinien verwenden für SELECT, INSERT, UPDATE und
DELETE
• Sicherheits-Richtlinien nur dann verwenden, wenn Sie sie benötigen; zum Beispiel
für Abrechnungsinformationen
• mehr als eine Richtlinie für jede Tabelle verwenden
Das PL/SQL-Package DBMS_RLS erlaubt Ihnen die Verwaltung von SicherheitsRichtlinien. Mit diesem Package können Sie Richtlinien hinzufügen, löschen,
aktivieren, deaktivieren und erneuern, die Sie erzeugt haben.
Hinweis: Die Implementierung fein-abgestimmter Zugriffskontrolle wird nicht in
diesem Kurs behandelt.
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-25
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Fein-abgestimmte Zugriffskontrolle:
wie sie arbeitet
•
Direkter oder indirekter Zugriff von Benutzern auf
Objekte mit einer zugewiesenen Richtlinie (Policy)
ruft automatisch die Richtlinie auf.
•
Package der Richtlinie gibt ein Prädikat zurück
(eine WHERE-Bedingung).
•
Die Datenbank hängt dynamisch das Prädikat an
die SQL-Anweisung an.
19-18
Copyright  Oracle Corporation, 1999. All rights reserved.
Wie arbeitet die fein-abgestimmte Zugriffskontrolle?
Die Implementation der fein-abgestimmten Zugriffskontrolle geschieht durch
dynamische Modifikation. Wenn ein Benutzer auf ein Objekt zugreift (direkt oder über
eine Unterabfrage), das eine Sicherheits-Richtlinie zugewiesen hat, konsultiert das
RDBMS automatisch das Package, das die Richtlinien für diese View oder Tabelle
implementiert. Die Richtlinie gibt ein Prädikat (Zugriffsbedingung) zurück, das an die
Abfrage angehängt wird. Die Anweisung wird dann geparst, optimiert und ausgeführt.
Sind einer Tabelle mehrere Richtlinien zugewiesen, verbindet der Data Server die
Prädikate, die jede Richtlinie zurückgibt, mit „AND“. Zum Beispiel können Sie eine
Richtlinie für Abfragen und eine andere für alle anderen DML-Anweisungen
(INSERT, UPDATE, DELETE) planen.
.....................................................................................................................................................
19-26
Oracle8i Datenbankadministration Teil I
Zusammenfassung
.....................................................................................................................................................
Zusammenfassung
Zusammenfassung
In dieser Lektion sollten Sie Folgendes gelernt haben:
•
•
•
•
Rollen anlegen
Privilegien an Rollen zuweisen
Rollen an Benutzer oder Rollen zuweisen
Default-Rollen einrichten
19-19
Copyright  Oracle Corporation, 1999. All rights reserved.
.....................................................................................................................................................
Oracle8i Datenbankadministration Teil I
19-27
Lektion 19: Rollen verwalten
.....................................................................................................................................................
Kurzreferenz
Kontext
Initialisierungsparameter
Dynamische Performance-Views
Data Dictionary-Views
Referenz
keine
keine
DBA_ROLES
DBA_ROLE_PRIVS
DBA_SYS_PRIVS
ROLE_ROLE_PRIVS
ROLE_SYS_PRIVS
ROLE_TAB_PRIVS
Befehle
SESSION_ROLES
CREATE_ROLE
ALTER ROLE
DROP ROLE
SET ROLE
ALTER USER ... DEFAULT ROLES
GRANT
Prozeduren und Funktionen in
Packages
REVOKE
DBMS_SESSION.SET_ROLE
.....................................................................................................................................................
19-28
Oracle8i Datenbankadministration Teil I
Herunterladen