Bonjour à tous,
Je suis entrain de développez une application .Net qui devra se connecter à Oracle.
En matière d'architecture, je souhaite que la gestion des utilisateurs soit intégrée dans mon application. Donc la création, la suppression, les droits d'accès... devront se faire à partir de l'interface de mon application sans que l'utilisateur n'ait à toucher à oracle.
Cependant j'ai eu le problème suivant :
Oracle ajoute lors de la création de chaque BDD une trentaine d'utilisateurs auxquels devront s'ajouter ceux créés par mon application. Cependant lors de l'administration de mon application je voudrai que seuls, les utilisateurs créés à partir de mon application soit visibles.
Donc il me fallait un moyen pour les identifier séparément.
J'ai pensé en premier lieu à rajouter un champ dans la table Users de Oracle pour spécifier s'il s'agit d'un utilisateur créé par Oracle ou un utilisateur créé par l'administrateur de mon application. Mais d'après le thread Link c'est totalement déconseillé et peut être pas possible...
Donc j'ai pensé à créer une table Séparée dans laquelle je stockerai (aussi) les informations relatives aux utilisateurs créés par mon application.
En faisant ceci, j'ai été confronté à un autre problème:
Etant donné que les 2 tables ne font pas partie du même schéma. La tables Users fait partie du schéma System et l'autre créée par moi même fait partie d'un autre schéma, j'ai eu du mal à créer un lien de clé étrangère entre les deux. J'ai essayé des requêtes du genre :
mais sans succès. Je reçois l'erreur Ora 942 (Table ou vue inexistante...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part Alter table DBArchitect.MyUsers add Constraint LinkToSytemUsersTable foreign key(ID) references sys.dba_users(user_ID);
Je peux faire le lien entre les 2 tables sans clé étrangère mais je cherche plutôt une solution robuste assurant l'intégrité référentielle.
Quelqu'un aurait une idée dans ce sens, s'il vous plait ?
Je vous remercie d'avance !
Partager