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?
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.
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.
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
Tags und Links r oracle authentication odbc database-connection