2017-12-13 82 views
0

모두.오류 3706 공급자를 찾을 수 없습니다. 제대로 설치되지 않았을 수 있습니다.

나는 DLL의 접근 방식이 코드는 윈도우에 아주 잘 10 64 비트를 실행하고 MS 오피스 64 비트입니다 How to securely store Connection String details in VBA

에 설명 사용했다. 그러나 Wndows 8.1 Pro 및 MS Office 64 비트에서 사용할 수없는 동일한 파일 사본. 생성

DLL은

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\regasm c:\windows\syswow64\OraConnection.dll /tlb /codebase 

를 사용하지만 여전히 같은 오류 내가 직면하고 의해 machnines 환경을 호스트로 변환됩니다. 환경 변수에 대한주의가 필요합니다. 내 연결 문자열 내가 DLL 간단한 난독 이상을 구매 모르겠어요

"Provider=OraOLEDB.Oracle; Data Source = ; User ID =; Password="; 
+0

다양한 무료 (및 유효한) .NET 디 컴파일러가 있습니다. 저장면에서 느끼지 마십시오! –

+0

폴더'c : \ windows \ syswow64 '는 32 비트 어셈블리의 위치입니다. 기본적으로 64 비트 응용 프로그램은 거기에서 아무 것도 읽지 않습니다. Windows 클라이언트에 Oracle 클라이언트 ("Oracle Provider for OLE DB"드라이버 포함)가 설치되어 있습니까? –

+0

MS 오피스 64 비트에 대한 확신이 있습니까? 그것은 매우 드물다. –

답변

0

입니다. 당신이하고있는 일은 의미있는 의미로 접근하기는 어렵지만, 프라이버시를 실제로 보호하지 않는 것입니다. 연결 문자열 관리에 대한 나의 일반적인 조언은 간단히 이 아니며 사용자/암호 저장이 아닙니다. 대신 사용자가 런타임에 사용자 이름/암호를 입력하고 OLEDB 연결에 Persist Security Info=false이 있는지 확인해야합니다. 이렇게하면 일단 열리면 전체 연결 문자열에 액세스 할 수 없으며 암호에 대한 참조가 없습니다. 그것은 DLL의 변수에 고정시키고 손가락을 횡단하는 것보다 훨씬 안전합니다. 아무도 메모리 덤프를 읽거나 디버거를 부착하는 방법을 알지 못합니다.

즉, 귀하의 질문에 밀접하지 않으며 제공자를 사용할 수 없습니다. 우선 DLL을 제거하고 공급자를 직접 사용하여 DLL이 예상치 못한 문제를 일으키는 지 여부를 배제하는 것입니다. 마찬가지로 실패 할 경우 DLL은 DLL과 아무 관련이 없으며 오라클의 제공 업체 문서를 참조하여 문제의 최하층에 도달해야합니다.

+0

난독 화가 내가 원하는 것입니다. 이 Excel 유틸리티는 다른 사용자가 사용하므로 데이터베이스의 사용자 이름과 암호를 공유하고 싶지 않습니다. –

+0

DBA에게 자격 증명을 공유 할 수있는 다른 계정을 만들도록 요청하십시오. –

+0

사용할 수있는 옵션이 아닙니다. 가능한 경우 오류를 해결하는 데 도움을줍니다. –

0

Succesfull 머신에서 나는 오라클 클라이언트로서 ODAC 12.2c 릴리즈 1에 대해 릴리스 12.2.0.1.0을 사용하고있었습니다.

그러나

2017년 6월 1일에 출시 된 Windows의 x 64에 대한 64 비트 ODAC 12.2c 릴리스 1 (12.2.0.1.0)와 같은 오라클 클라이언트의 최신 버전을 보았다.

설치되어 있습니다. 그리고 내 실수가 해결되었습니다. 내가 시스템 환경 변수를 관찰 할 때 몇 가지 사항이 추가되었다. E : \ app \ client \ Admin \ product \ 12.2.0 \ client_1, E : \ app \ client \ Admin \ product \ 12.2.0 \ client_1 \ bin, C : \ Users \ Admin \ Oracle \;

나는 그들이 실제로 한 일을 모릅니다. 그러나 오류는 해결되었습니다.

아무도이 문제에 집중할 수 있습니까?

+0

C : \ Users \ Admin \ Oracle이 흥미 롭습니다. –