Как я могу получить доступ к базе данных Oracle через ODBC из R, не делая пароль открытым? - PullRequest
9 голосов
/ 09 марта 2011

Этот вопрос основан на моей попытке создать приложение на R, которое может извлекать данные из удаленной базы данных Oracle через ODBC, но я сомневаюсь, что ответы будут зависеть от R.

Я пытаюсь создать приложение, которое будут использовать несколько пользователей (которое я назову Reporter). Приложение будет извлекать данные из удаленной базы данных Oracle, которая используется корпоративным приложением (которое я назову CorpApp) через ссылку ODBC. Затем приложение Reporter обработает данные и автоматически создаст отчеты.

CorpApp имеет свою собственную встроенную аутентификацию пользователей, и он не использует учетные записи пользователей Oracle для контроля доступа (я предполагаю, что установка CorpApp включает один набор учетных данных пользователя Oracle в некотором секретном двоичном расположении, которое он использует).

Поскольку R - это язык сценариев, в настоящий момент учетные данные пользователя, которые я использую для аутентификации в Oracle, доступны либо в коде, либо в файле данных, который R может понять. В настоящее время я планирую, что это приложение будет R-пакетом, возможно, как расширение RCommander.

Есть ли какие-нибудь хорошие способы обеспечить это;

  1. Несколько пользователей могут использовать это приложение просто?
  2. Люди, которые не являются подлинными пользователями, не могут получить доступ к базовым данным?
  3. Данные учетной записи отправляются безопасным способом?
  4. Данные в базе данных безопасны?

Ответы [ 3 ]

4 голосов
/ 09 марта 2011

Другая возможность - использовать переменную окружения, которую ваши R-скрипты читают через Sys.getenv(), а затем вставить в строку подключения.

3 голосов
/ 09 марта 2011

Предполагая, что это из Windows, вы можете настроить DSN в источниках данных для хранения информации о пароле. Также вы можете разрешить пользователю предоставлять подробности во время выполнения - если они требуются odbcConnect, откроется диалоговое окно аутентификации из установленных источников данных.

Эти опции не очень продвинуты и требуют переноса ваших вопросов о безопасности в операционную систему, но могут быть полезны, если вы их еще не рассмотрели.

0 голосов
/ 04 июня 2016

обновление: вы можете использовать ROracle с Oracle Wallet ( инструкции ). После установки ROracle и настройки Oracle Wallet вы можете подключиться с помощью

con <- dbConnect(drv, username="", password="", dbname="MY_DB_NAME")

т.е. использование пустых строк в качестве входных данных для имени пользователя и пароля

Для УСТАНОВИТЬ ROracle, вам понадобится Oracle Instant Client и SDK, который вы можете найти здесь здесь

...