Wie kann ich über ODBC von R aus auf eine Oracle-Datenbank zugreifen, ohne das Kennwort öffentlich zu machen?

8

Diese Frage basiert auf meinem Versuch, eine Anwendung in R zu erstellen, die Daten aus einer entfernten Oracle-Datenbank über ODBC abrufen kann, aber ich bezweifle, dass die Antworten R-spezifisch sind.

Ich versuche, eine Anwendung zu erstellen, die mehrere Benutzer verwenden (die ich Reporter nennen werde). Die Anwendung ruft Daten aus einer Remote-Oracle-Datenbank ab, die von einer Corporate-Anwendung (die ich CorpApp nennen werde) über eine ODBC-Verbindung verwendet wird. Die Reporter App verarbeitet dann die Daten und erstellt automatisch Berichte.

Die CorpApp hat ihre eigene, integrierte Benutzerauthentifizierung und verwendet keine Oracle-Benutzerkonten, um den Zugriff zu kontrollieren (ich nehme an, dass die CorpApp-Installation einen Satz Oracle-Benutzeranmeldeinformationen an einem geheimen, binären Speicherort enthält).

Da R eine Skriptsprache ist, sind die Benutzeranmeldeinformationen, mit denen ich mich bei Oracle authentifiziere, entweder im Code oder in einer Datendatei verfügbar, die R verstehen kann. Derzeit plane ich, dass diese App ein R-Paket sein wird, wahrscheinlich als Erweiterung zu RCommander.

Gibt es irgendwelche guten Möglichkeiten, das sicherzustellen?

  1. Mehrere Benutzer können diese Anwendung einfach verwenden?
  2. Personen, die keine authentischen Benutzer sind, können nicht auf die zugrunde liegenden Daten zugreifen?
  3. Kontoinformationen werden sicher gesendet?
  4. Die Daten in der Datenbank sind sicher?
PaulHurleyuk 09.03.2011, 11:21
quelle

3 Antworten

2

Angenommen, dies ist von Windows, können Sie den DSN in den Datenquellen einrichten, um die Kennwortinformationen zu speichern. Außerdem können Sie dem Benutzer erlauben, die Details zur Laufzeit zur Verfügung zu stellen - wenn sie von odbcConnect benötigt werden, wird der Authentifizierungsdialog von den Datenquellen eingerichtet.

Diese Optionen sind nicht sehr weit fortgeschritten und erfordern die Übertragung Ihrer Sicherheitsfragen auf das Betriebssystem. Sie können jedoch hilfreich sein, wenn Sie sie nicht bereits berücksichtigt haben.

    
mdsumner 09.03.2011, 11:31
quelle
4

Eine weitere Möglichkeit besteht darin, eine Umgebungsvariable zu verwenden, die Ihre R-Skripte über Sys.getenv() lesen und dann in die Verbindungszeichenfolge einfügen.

    
Dirk Eddelbuettel 09.03.2011 14:50
quelle
0

ein Update: Sie können ROracle mit Oracle verwenden Wallet ( Anweisungen ). Nach der Installation von ROracle und der Einrichtung von Oracle Wallet können Sie eine Verbindung mit

herstellen %Vor%

d. leere Zeichenfolgen als Eingaben für Benutzername und Passwort verwenden

Um INSTALL zu installieren, benötigen Sie den Oracle-Sofort-Client und auch den SDK, den Sie finden können Es hier

    
chinsoon12 04.06.2016 03:56
quelle