Frage

Wir wollen DB-Zugriff (Oracle), um unsere Nutzer nur durch unsere eigene Anwendung ermöglichen - nennen wir es „ourTool.exe“, lokal auf den Anwender-Computern installiert. Derzeit müssen die Benutzer Benutzername / Passwort zur Verfügung stellen, wenn sie „ourTool“ beginnen. Das angegebene Passwort Passwort wird entschlüsselt und wir verwenden Benutzername / entschlüsselt-Passwort, um schließlich auf die Oracle-DB anmelden. Dieser Ansatz verhindert, dass die Benutzer direkt von unserer DB mit Tool von Drittanbietern (SQLplus, Excel, Access, ...) und alles in der DB Zugriff gewährleistet ist mit „ourTool“ worden eingegeben / editiert.

Nun, einer unseres Kunden will seinen Nutzern "Single Sign-On" ermöglichen (mit Smart Cards / Oracle PKI). Damit wird der Benutzer in der Lage sein, unsere DB zu verbinden, ohne ein Passwort bereitstellt, jedesmal wenn sie „ourTool“ beginnen. Aber das gleiche wird für die potentiell gefährlichen Werkzeuge wie SQLplus, Excel, Access, etc. wahr sein

Gibt es eine Möglichkeit, dies zu verhindern? Wie können wir sicherstellen, dass jeder Datensatz in unserer DB wird nur erstellt / bearbeitet / gelöscht „ourTool“ in diesem Szenario mit?

War es hilfreich?

Lösung

Da es Ihre Anwendung ist, und Sie haben die Kontrolle über die Quelle, können Sie entweder ein Passwort geschützt Datenbankrollen oder Secure Application Rollen verwenden, die von ourTool.exe aktiviert ist. (Siehe http://www.oracle.com/technology/ obe / obe10gdb / security / approles / approles.htm ).

Zum Beispiel mit einer passwortgeschützten Datenbank-Rolle, würde die erste Verbindung mit nur seine SESSION Privileg CREATE, und dann würde ourTool.exe die SET-ROLLTE mit Passwort nur Sie bekannt erteilen. Jede andere Anwendung hat nicht die Informationen, um die Rolle zu setzen. Offensichtlich werden die Privilegien nur auf die Rolle gewährt und nicht direkt an den Benutzer in dieser Konfiguration.

Andere Tipps

In der Standardeinstellung OCI trägt die anrufende Anwendung EXE Namen und Sie können es durch Abfragen v$session zugreifen:

SELECT  program
FROM    V$SESSION

, die Sie in einem AFTER LOGON Trigger tun können.

Aber diese leicht außer Kraft gesetzt werden können und sollten nicht als verlässlich angesehen werden.

I umbenannt meine sqlplus.exe zu myTool.exe und nach einer Verbindung mit myTool.exe machen

SELECT  program
FROM    V$SESSION
where username = 'SYSTEM';

Returns: myTool.exe

So bewusst sein, wie Quassnoi sagte: obwohl verwendbar in einigen Fällen ist es sicherlich kein Beweis Bullit

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top