2010-05-31 4 views
2

Je voudrais autoriser la combinaison utilisateur/application, pas seulement l'utilisateur. Le scénario est que nous avons construit une application qui guide l'utilisateur vers des mises à jour sécurisées de certaines données.Comment autoriser une combinaison utilisateur/application dans Oracle?

Si le même utilisateur installe PL/SQL Dev, Toad ou tout autre outil de gestion Oracle, il peut éditer les données de manière interdite par l'application.

Répondre

2

La réponse de Vincent est bonne (et il fait aussi un bon point dans son commentaire sur l'usurpation de l'exécutable).

Pour une méthode plus programmatique (pas de niveau intermédiaire), voir mon answer à une question similaire. Il s'agit essentiellement de coder une ALTER SESSION dans votre application qui active un rôle.

0

La vue de session v $ contient une colonne 'programme'. Cela contient le nom de l'application connectée. Vous pourrez peut-être utiliser cette information.

Pour déterminer l'utilisation d'ID sessions ceci:

sélectionnez sys_context ('USERENV', 'SID') du double;

+0

Malheureusement, la colonne du programme peut facilement être usurpée ('cp sqlplus your_application_name'), vous ne devriez pas vous en remettre à la sécurité. –

+0

Merci, pour le souligner et je suis heureux de montrer le chemin de ne pas à cela. – Rene

2

Vous pouvez utiliser un utilisateur proxy pour restreindre l'accès à la base de données. Vos utilisateurs ne pourront se connecter (authentification) et activer un rôle (autorisation) via le compte de niveau intermédiaire. Ils n'auraient pas besoin de connaître leur mot de passe DB. Ils peuvent être authentifiés en externe (avec AD par exemple).

Voir this thread on AskTom et the documentation pour en savoir plus.

Questions connexes