80 votes

Comment créer un utilisateur dans Oracle 11g et lui accorder des permissions ?

Quelqu'un peut-il me conseiller sur la façon de créer un utilisateur dans Oracle 11g et de lui accorder uniquement la capacité d'exécuter une procédure stockée particulière et les tables de cette procédure.

Je ne sais pas vraiment comment faire !

86voto

cagcowboy Points 13721

Connectez comme SYSTEM.

CREATE USER username IDENTIFIED BY apassword;

GRANT CONNECT TO username;

GRANT EXECUTE on schema.procedure TO username;

Vous pouvez également en avoir besoin :

GRANT SELECT [, INSERT] [, UPDATE] [, DELETE] on schema.table TO username;

dans les tables que la procédure utilise.

6 votes

+1 En fonction de la version d'Oracle, cependant, la fonction CONNECT Je préfère accorder CREATE SESSION à la place.

0 votes

La version que j'utilise est 11g

26voto

Sanoop Points 121

Suivez les étapes ci-dessous pour créer un utilisateur dans Oracle.
--Connexion en tant qu'utilisateur du système

CONNECT <USER-NAME>/<PASSWORD>@<DATABASE NAME>;

--Créer une requête utilisateur

CREATE USER <USER NAME> IDENTIFIED BY <PASSWORD>;

--Fournir des rôles

GRANT CONNECT,RESOURCE,DBA TO <USER NAME>;

--Fournir des privilèges

GRANT CREATE SESSION, GRANT ANY PRIVILEGE TO <USER NAME>;
GRANT UNLIMITED TABLESPACE TO <USER NAME>;

--Fournir l'accès aux tableaux.

GRANT SELECT,UPDATE,INSERT ON <TABLE NAME> TO <USER NAME>;

0 votes

Dans Oracle 11g, est-ce "grant dba" ou "grand sysdba" ?

2 votes

ORA-00990 : privilège manquant ou invalide sur 'GRANT CREATE SESSION GRANT ANY PRIVILEGE TO <USER NAME>;'.

4 votes

Une virgule devrait se trouver après session

21voto

APC Points 69630

La documentation d'Oracle est complète, en ligne et gratuite. Vous devriez apprendre à l'utiliser. Vous pouvez trouver la syntaxe de CREER UN UTILISATEUR ici et pour GRANT ici ,

Afin de se connecter à la base de données, nous devons accorder un utilisateur le privilège CREATE SESSION .

Pour accorder les droits du nouvel utilisateur sur une procédure stockée, nous devons accorder le privilège EXECUTE. Le concédant doit être l'un des suivants :

  • le propriétaire de la procédure
  • un utilisateur autorisé à exécuter cette procédure avec l'option WITH ADMIN
  • un utilisateur disposant du privilège GRANT ANY OBJECT
  • un DBA ou un autre compte de super utilisateur.

Notez que nous n'avons normalement pas besoin d'accorder des droits sur les objets utilisés par une procédure stockée afin d'utiliser la procédure. La permission par défaut est que nous exécutons la procédure avec les mêmes droits que le propriétaire de la procédure et, pour ainsi dire, héritons de ses droits lors de l'exécution de la procédure. Ceci est couvert par la clause AUTHID. La valeur par défaut est definer (c'est-à-dire le propriétaire de la procédure). Ce n'est que si l'AUTHID est défini à CURRENT_USER (l'invoker, c'est-à-dire notre nouvel utilisateur) que nous devons accorder des droits sur les objets utilisés par la procédure. Pour en savoir plus .

2voto

-1voto

subhashis Points 686
CREATE USER user_name  
PROFILE DEFAULT  
IDENTIFIED BY password  
DEFAULT TABLESPACE USERS  
TEMPORARY TABLESPACE TEMP  
ACCOUNT UNLOCK  
GRANT CONNECT,RESOURCE TO "user_name"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X