Je souhaite créer un utilisateur/schéma dans Oracle 11G et accorder à tous les privilèges à l'utilisateur. Comment puis-je faire cela avec un script simple. J'ai examiné les liens suivants, mais je ne suis pas sûr de savoir lequel utiliser ou si ces déclarations sont le meilleur moyen.
http://ss64.com/ora/grant.html
Pouvez-vous suggérer comment je peux le faire de la manière la plus simple possible et de manière sécurisée?
Pour créer un nouvel utilisateur, vous utilisez le " créer utilisateur " commande. Ainsi, une commande utilisateur typique serait de créer:
create user test identified by test default tablespace mytbsp.
Bien sûr, vous devez remplacer les valeurs de l'utilisateur, mot de passe et tablespace avec des valeurs différentes. Cependant, je vous recommande de jeter un oeil à la documentation d'Oracle http://docs.Oracle.com/cd/B19306_01/server.102/b14200/statements_8003.htm .
L'étape suivante consiste à accorder à l'utilisateur les droits correspondants. Pour donner à un utilisateur tous les droits est une approche très mauvais que vous aussi lui donner des privilèges dba. Ce que vous est au lieu de lui donner des privilèges de connexion et les autorisations à son tablespace par défaut. En outre, il est préférable d'utiliser des rôles au lieu d'accorder les droits directement. Donc, si vous devez accorder les droits à nouveau, vous ne devez accorder le rôle. La première étape est de créer le rôle:
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;
Cette déclaration est que vous ne pouvez pas remplir nécessiter des droits supplémentaires (maintenance d'index par exemple), mais un coup d'oeil à la documentation en ligne Oracle.
Après que vous accordez le rôle à l'utilisateur nouvellement créé.
GRANT myrole to test;
Créez l'utilisateur:
create user user_name identified by password ;
Accorder les privilèges:
grant all privilege to user_name;
Si vous voulez voir le nombre de privilèges:
select * from system_privilege_map where neme like '%PRIV%';
Si vous souhaitez afficher les privilèges attribués aux utilisateurs:
select count (*) , grantee
from dba_sys_privs
where grantee in ('user1','user2')
group by grantee ;