Bonjour est il possible de creer un utilisateur Oracle avecun 'acces en lecture sur un seul schema ?
Merci
Bonjour est il possible de creer un utilisateur Oracle avecun 'acces en lecture sur un seul schema ?
Merci
Bonjour,
Quelle est ta version d'Oracle?
Il n'existe pas de privilège "read only" sur tout un schéma pour la création d'un user, il faut que tu octroies les droits sur chaque objet du schéma à ce user. En général on crée un rôle à qui on donne ces privilèges puis on donne le rôle au user concerné.
A partir de la version 12.1 il vaut mieux attribuer le privilège READ que SELECT, car ce dernier laisse la possibilité de locker la table en ajoutant la clause FOR UPDATE.
Bonjour, je suis en version 11.2.0.4.
Merci pour ta réponse.
Impossible à faire, il faudra que tu génères un fichier .sql listant tous les GRANTs que tu veux donner aux objets du schéma.
Par exemple :
Là où c'est corsé c'est qu'il faudra que tu traites les différents droits (SELECT, UPDATE, INSERT, DELETE, INDEX, REFERENCES...) mais aussi les différents types d'objets (TABLE, VUE, SEQUENCE...) sachant que tel droit n'a pas de sens pour tel objet
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT 'GRANT SELECT ON ' || table_name || ' TO USER2;' FROM DBA_TABLES WHERE owner = 'user1';
Je te conseille de chercher du code sur le ne, à moins que le contenu de ton schéma soit très simple.
DBA Oracle
Rédacteur du blog : dbaoraclesql.canalblog.com
Pour une version d'Oracle supérieure cela aurait il été plus simple ?
Pas à ma connaissance.
DBA Oracle
Rédacteur du blog : dbaoraclesql.canalblog.com
C'est une des grosses lacunes d'Oracle. Tous les autres SGBDR pratiquent la sécurisation au niveau des schémas ou des bases.
Tu doit donc passer par un script listant un a un les tables ET LES VUES....
Mais le problème c'est que dès qu'une vue ou une table sera rajoutée au schéma, il faudra penser à lui rajouter ces privilèges !
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Bonjour,
It is possible avec plsql.
1- create l'utilisateur
>2- create le roleCREATE USER toto
IDENTIFIED BY toto
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
3-give le grant aux objects du schemacreate role p_role ;
>4-give le role à userBEGIN
FOR j IN (SELECT * FROM dba_tables WHERE owner='schema_name')
LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON schema_name.' || j.table_name ||
' TO ro_role';
END LOOP;
END;
grant p_role to toto;
Vous peut aussi faire plus simple as this:
la session qui applique ces commandes est la session du schema visé.create user toto identified by toto; grant create session, select any table, select any dictionary to toto;
Cordialement,
J'ose espérer que m'a contribution vous a été d'une grande aide.
Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
Paul
C'est justement pour cette raison que ce n'est pas implémenté je pense: éviter que qqn crée une table et l'expose à quelqu'un d'autre sans le savoir (= sans le faire explicitement). I suffit de faire un DDL trigger si c'est le comportement souhaité:
https://blog.psftdba.com/2009/03/automatically-granting-privileges-on.html
Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot
Excuse moi, mais là tu te contredis de façon assez amusante ! je te cite :
1) c'est par sécurité que c'est interdit....
2) ... on peut le faire en codant un déclencheur DDL
Question : le fait de la faire par un déclencheur DDL c'est aussi par sécurité que c'est permis !!!!
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
L'utilisation d'un trigger DDL n'est pas courante pour ce genre de pratiques. Et d'ailleurs la création d'un tel trigger est elle même soumise à privilège, c'est donc un DBA qui créera ce trigger si besoin. Si ton appli est bien faite tu n'en as pas besoin, car les grants nécessaires seront faits au moment de la création de la table.
La sécurité ce n'est pas de permettre ou d'interdire, mais d'attribuer une responsabilité.
Avec la déclaration d'un grant schema, à qui est attribuée la responsabilité si une donnée critique est visible? Celui qui a fait le grant schema? Non car il ne sait pas quelle table va être créée par la suite. Celui qui a créé la table? Non il n'a pas fait le grant.
Si tu fais le code procédural du trigger, la sécurité deviens ta responsabilité: tu peux filtrer, loguer, auditer,... S'il y a une fuite de donnée, c'est ton code qui en est responsable.
Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot
Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager