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 !
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 !
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.
+1 En fonction de la version d'Oracle, cependant, la fonction CONNECT
Je préfère accorder CREATE SESSION
à la place.
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>;
ORA-00990 : privilège manquant ou invalide sur 'GRANT CREATE SESSION GRANT ANY PRIVILEGE TO <USER NAME>;'.
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 :
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 .
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.