2012-08-11 8 views
8

Ich möchte einen Benutzer/ein Schema in Oracle 11g erstellen und dem Benutzer alle Berechtigungen gewähren. Wie kann ich das mit einem einfachen Skript machen? Ich habe mir die folgenden Links angesehen, aber ich bin mir nicht sicher, welche zu verwenden oder ob diese Aussagen der beste Weg sind.Oracle 11g-Anweisungen zum Erstellen neuer Benutzer- und Erteilungsberechtigungen?

http://ss64.com/ora/grant.html

Können Sie, wie ich dies auf möglichst einfache Art und Weise tun kann und sicher?

Antwort

8

Um einen neuen Benutzer zu erstellen, verwenden Sie den Befehl "create user". So ein typischer Benutzer Befehl erstellen wäre:

create user test identified by test default tablespace mytbsp. 

Natürlich müssen Sie die Werte für den Benutzer, Passwort und Tabellen mit unterschiedlichen Werten ersetzen. Ich würde jedoch empfehlen, dass Sie sich Oracle Dokumentation http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8003.htm ansehen.

Der nächste Schritt besteht darin, dem Benutzer die entsprechenden Rechte zu gewähren. Einem Benutzer alle Rechte zu geben, ist ein sehr schlechter Ansatz, da Sie ihm auch dba-Privilegien geben würden. Was Sie stattdessen sind, ihm Verbindungsberechtigungen und die Berechtigungen zu seinem Standard-Tablespace zu geben. Es ist auch besser, Rollen zu verwenden, anstatt die Rechte direkt zu vergeben. Wenn Sie die Rechte erneut erteilen müssen, müssen Sie nur die Rolle zuweisen. Erster Schritt ist es, die Rolle zu erstellen:

GRANT CREATE session, CREATE table, CREATE view, 
     CREATE procedure,CREATE synonym, 
     ALTER table, ALTER view, ALTER procedure,ALTER synonym, 
     DROP table, DROP view, DROP procedure,DROP synonym 
     TO MyRole; 

Diese Aussage ist nicht vollständig Sie zusätzliche Rechte könnten (Index Wartung zum Beispiel), aber einen Blick auf die Online-Oracle-Dokumentation haben.

Anschließend erteilen Sie dem neu erstellten Benutzer die Rolle.

GRANT myrole to test; 
+1

Kann ich ALLE an MyRole GRANT? –

+1

wie ich erklärte, das ist ein wirklich schlechter Ansatz. Sie machen im Grunde alle ein dba, deaktivieren alle privs, Sie müssen wirklich über Sicherheit denken – steve

+0

Wie entscheide ich welche Privilegien zu gewähren und welche zu widerrufen? –

4

Erstellen Sie den Benutzer:

create user user_name identified by password ; 

die Privilegien gewähren:

grant all privilege to user_name; 

Wenn Sie die Anzahl der Berechtigungen anzeigen möchten:

select * from system_privilege_map where neme like '%PRIV%'; 

Wenn Sie möchten, Berechtigungen anzeigen, die den Benutzern zugewiesen sind:

select count (*) , grantee 
from dba_sys_privs 
where grantee in ('user1','user2') 
group by grantee ; 
Verwandte Themen