Bonjour,
J'admets que je ne sais pas trop si c'est la bonne partie du forum mais bon, la réponse est sans doute un truc tout bête que j'oublie.
Un résumé rapide de mon problème, je ne comprends pas comment fonctionne les droits de base oracle que mon entreprise utilise.
L'entreprise dans laquelle je travaille utilise un progiciel lié à Oracle 8i.
Ce progiciel étant très complet, il utilise plusieurs schémas/bases auxquels ont accès les utilisateurs lambda en fonction de leurs droits dans l'application.
Jusqu'à maintenant, toute la gestion des droits utilisateurs était réalisée à travers le progiciel.
Or récemment, la folie des stats nous ayant pris, je dois créer un utilisateur pour une application de business intelligence.
Cet utilisateur spécifique doit avoir des droits restreints d'accès aux tables, certains schémas contenant des informations "sensibles".
D'après le peu que j'en sais (je suis loin de pouvoir me nommer "administrateur") dans oracle, il y a un minimum de droits nécessaires pour qu'un utilisateur accède aux tables :
- création de l'utilisateur
- droit de connexion aux schémas
- droit de consultation
Voici les commandes que j'ai passées jusqu'ici :
Suite à ces lignes mon utilisateur ne devrait pas, pour autant que je le sache, pouvoir accéder aux tables....et pourtant il peut faire toutes les sélections qu'il veut, ainsi que des updates et ce, sur tous les schémas/bases.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CREATE USER test IDENTIFIED BY test; GRANT CREATE SESSION TO test;
En consultant le forum j'ai testé plusieurs choses :
M’affiche ces droits :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM session_roles union SELECT * FROM session_privs
je ne comprends pas d'ou viennent les deux autres privilièges, pour moi, ce ne sont pas des privilièges de lecture, mais bon, j'ai tenté de supprimer les droits liés aux directory, le flop total :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CREATE ANY DIRECTORY CREATE SESSION DROP ANY DIRECTORY
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Action : REVOKE DROP ANY DIRECTORY FROM test; Réaction: ORAA-01952: system privileges not granted to 'test'
Et pour finir j'ai tenté de limiter le champ d'action à un schéma donné avec une commande alter session, nouveau flop, la commande passe mais l'utilisateur a encore accès a tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER SESSIONS SET CURRENT_SCHEMA=base1;
Après tout ca, mes questions :
Avez-vous la moindre idée de la raison pour laquelle mon utilisateur a accès à tout alors que je ne lui donne accès a rien ?
Connaissez-vous une méthode pour revenir à une situation ou je puisse gérer les droits correctement et limiter les tables auxquelles il aurait accès ?
Merci d'avoir pris le temps de lire, j'espère que quelqu'un aura une réponse.





Répondre avec citation



Partager