2011-03-09 2 views
8

이 질문은 R을 사용하여 ODBC를 통해 원격 Oracle 데이터베이스에서 데이터를 가져올 수있는 응용 프로그램을 만들려는 시도를 기반으로하지만 응답이 R 특정 일지 의심 스럽습니다.암호를 공개하지 않고 R에서 ODBC를 통해 Oracle 데이터베이스에 액세스하려면 어떻게합니까?

저는 여러 사용자가 사용할 응용 프로그램을 만들려고합니다 (Reporter를 호출 할 것입니다). 애플리케이션은 ODBC 링크를 통해 기업 애플리케이션 (CorpApp이라고 부름)이 사용하는 원격 Oracle 데이터베이스에서 데이터를 가져옵니다. 그러면 Reporter 앱이 데이터를 처리하고 보고서를 자동으로 생성합니다.

CorpApp에는 사용자 인증이 내장되어 있으며 액세스를 제어하기 위해 Oracle 사용자 계정을 사용하지 않습니다 (CorpApp 설치에는 일부 비밀, 이진 위치에서 Oracle 사용자 자격 증명이 한 세트 포함되어 있다고 가정합니다) .

R은 스크립트 언어이므로 현재 Oracle에서 인증하는 데 사용하는 사용자 자격 증명은 코드 또는 R이 이해할 수있는 데이터 파일에서 사용할 수 있습니다. 현재이 응용 프로그램은 RCommander의 확장 프로그램 인 R 패키지가 될 계획입니다.

이를 보장 할 수있는 좋은 방법이 있습니까?

  1. 여러 사용자가이 응용 프로그램을 간단하게 사용할 수 있습니까?
  2. 인증되지 않은 사용자는 기본 데이터에 액세스 할 수 없습니까?
  3. 계정 세부 정보가 안전한 방식으로 전송됩니까?
  4. 데이터베이스의 데이터가 안전합니까?

답변

2

Windows에서 가정하면 암호 정보를 저장하기 위해 데이터 소스에 DSN을 설정할 수 있습니다. 또한 사용자가 런타임에 세부 사항을 제공 할 수 있도록 허용 할 수 있습니다. odbcConnect가 필요하면 데이터 소스 설정의 인증 대화 상자가 나타납니다.

이러한 옵션은 고급 기능이 아니며 보안에 관한 질문을 운영 체제로 전송해야하지만 아직 고려하지 않은 경우 도움이 될 수 있습니다.

4

또 다른 가능성은 R 스크립트가 Sys.getenv()을 통해 읽고 나서 연결 문자열에 삽입하는 환경 변수를 사용하는 것입니다.

0

업데이트 : ROracle을 (를) 사용하여 Oracle 지갑 (instructions)과 함께 사용할 수 있습니다. ROracle를 설치하고 오라클 지갑을 설정 한 후, 당신은

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

즉, 오라클 인스턴트 클라이언트와도 SDK가 필요합니다

ROracle INSTALL에 사용자 이름과 암호 입력으로 빈 문자열을 사용하여 연결할 수있는 당신 그것을 찾을 수 있습니다 here

관련 문제