2017-12-04 3 views
1

SQL Server (2012 이상) Standard Edition 용 SSIS를 사용하여 Windows 인증을 사용하여 원격 Oracle 데이터베이스에 연결하려고합니다. SQLPLUS를 사용하는 경우 내 테스트에서Windows 인증을 사용하는 Oracle에 대한 SSIS 연결

, 이것은 잘 작동 :
SQLPLUS/@ MyRemoteConnection 사용자 ID를 지정하는 경우, 연결 성공 (ADO.NET 또는 OLE DB 연결 관리자를 사용하여) SSIS에서

및 암호. SSIS 연결에서 "/"사용자 (암호없이)를 지정할 때 연결이 실패합니다.

Windows 인증은 Oracle에 대한 SSIS 연결에 전혀 지원됩니까?
예인 경우 어떻게해야합니까?

Windows 인증이 지원되지 않는 경우 SQL Server Standard Edition에서 연결할 수있는 다른 도구가 있습니까 (예 : Attunity를 사용할 수없는 이유)?

모든 제안을 받으실 수 있습니다.

+0

오라클 드라이버를 사용해 보셨습니까? –

+0

이 기사를 살펴보십시오. http://www.itprotoday.com/security/implementing-windows-authentication-oracle 이전 기사이지만 오라클 용 AD 설치 방법에 대해 설명합니다. 행운을 빌어 요 ... –

+0

@Jacob H : 예, Microsoft와 Oracle 연결 관리자를 모두 시도했습니다 (그리고 Oracle Instant Client를 설치했습니다). –

답변

1

예, SQL Server Standard Edition에서 Oracle에 이르는 Windows 인증이 지원됩니다.

유효한 ADO.NET 연결 문자열 (예 : 비주얼 스튜디오 (SSIS) 또는 SQL Server Management Studio에서 가져 오기 마법사를 사용하여) 다음과 같이 보일 수 있습니다 :

Data Source=<host name>:<port number>/<database name>;Integrated Security=SSPI; 

예 :

Data Source=my_host_name.com:1521/ORCL;Integrated Security=SSPI; 

Windows 인증의 경우 "통합 보안" 을 "예", "True"또는 "SSPI"로 설정해야합니다.

유효한 OLE DB 연결 문자열은 다음과 같습니다

Data Source=<host name>:<port number>/<database name>;User ID=/Provider=OraOLEDB.Oracle.1; 

예 : 포트 번호는 선택 사항입니다 을하고있는 경우 표준 포트 번호 (일반적으로 생략 할 수 있습니다

Data Source=my_host_name.com:1521/ORCL;User ID=/Provider=OraOLEDB.Oracle.1; 

있습니다 1521)가 사용됩니다. SSIS를 사용하는 경우 연결 관리자가 메시지에 불만을 표시 할 수 있습니다. "지정된 경로 형식이 지원되지 않습니다." 포트 번호가 연결 문자열에 지정된 경우 이런 일이 발생합니다. 그럼에도 불구하고 연결 문자열이 식의 변수로 채워지는 경우 연결 문자열 (포트 번호 포함)이 작동합니다.

또한 요구 사항 : 파일 시스템 (클라이언트와 서버 모두)에

는 파일 SQLNET.ORA을 존재가있다.
이 파일은 문자열을 데이터베이스 서버에

SQLNET.AUTHENTICATION_SERVICES= (NTS) 

를 포함해야하고, 전체 Oracle 클라이언트를 사용하는 경우, 파일 SQLNET.ORA은 ORACLE_HOME \ 네트워크 \ 관리자 디렉토리에 위치해야합니다.
ORACLE_HOME은 일반적으로 인스턴트 클라이언트가 설치되어있는 경우, 파일 SQLNET.ORA이하는 디렉토리 아래에있는 "네트워크 \ 관리자"하위 디렉토리에 넣을 수


HKEY_LOCAL_MACHINE \ 소프트웨어 \의 ORACLE 아래 레지스트리에 정의되어 인스턴트 클라이언트가 있습니다. Instant Client는 ORACLE_HOME을 사용 (또는 평가)하기 위해 레지스트리를 조사하지 않습니다. 따라서 Oracle 서버에 연결을 시도 할 때 sqlnet.ora 파일이 읽히지 않습니다!
(그건 내 연결이 항상 실패하는 이유이다.) 또 다른 옵션은, 예를 들어, 환경 변수 TNS_ADMIN을 설정하여 SQLNET.ORA에 대한 디렉토리를 지정하는 것입니다

Windows 제어판에서 예 : TNS_ADMIN = C : \ TNS_ADMIN
그런 다음이 디렉토리에 sqlnet.ora 파일을 넣으십시오.

Oracle 서버에서 Windows 사용자가 존재해야합니다. 예 :

create user "OPS$MYDOMAIN\MY_USER_NAME" identified externally; 
grant create session, alter session to "OPS$MYDOMAIN\MY_USER_NAME"; 

(추가 권한이 필요할 수 있습니다.)

는 그 다음 Windows 인증을 사용하여 Windows 사용자 MY_USER_NAME로 오라클에 를 연결할 수 있어야한다.