웹모아
웹모아[손님] 검색 로그인   
웹모아
 
일반팁
 


oledb 접근 오류
  2006-09-08 15:46:15 댓글:(0)   조회:4618


윈2000 서버에서 델파이6, 오라클9i, IIS 이러한 환경에서
개발을 하다가 오라클9i 클라이언트에서 OLE DB 를
이용할 경우 오라클9i 에 접속하지 못하는 에러가
생겼습니다.

문서는 영문이여서 주요 부문만 번역합니다.

문제 설명
=========
다음과 같은 방식으로 승인된 사용자 (Authenticated User) 권한을
갖고 있는 오라클 데이터베이스에 접근하려는 경우

1. Oracle Provider for OLE DB
2. Microsoft OLE DB Provider for Oracle
3. Oracle ODBC Driver
4. Microsoft ODBC for Oracle
5. Oracle Objects for OLE (0040)
6. Microsoft .NET Framework Data Provider for Oracle

특히 Oracle9i Release 2 (9.2.0.1.0) 클라이언트가 설치된 곳에서 위와
같은 방식을 이용한 어플리케이션을 실행하고 (저의 경우는 델파이로
작성된 ActiveX 그리고 DataSnap 의 WebConnection ), IIS 에 접근할
경우 다음과 같은 7가지 유형의 오류가 발생합니다.

1 을 사용한 경우:
=> Error Type: Microsoft OLE DB Service Components (0x80070005)
Access is denied.
=> OraOLEDB.Oracle Provider is not registered on the local machine.

2 을 사용한 경우:
=> Error Type: Microsoft OLE DB Provider for Oracle (0x80004005)
Oracle error occurred, but error message could not be retrieved from Oracle.

3 을 사용한 경우:
=> Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
Specified driver could not be loaded due to system error 5 (Oracle in OraHome92)

4 을 사용한 경우:
=> The Oracle(tm) client and networking components were not found.
These components are supplied by Oracle Corporation and are part of the Oracle
version 7.3 (or greater) client software installation.

You will be unable to use this driver until these components have been installed.

5 을 사용한 경우:
=> global.asa 파일이 사용된 경우
Error Type: Active Server Pages (0x0)
An error occurred while creating object 'OraSession'
=> global.asa 파일이 사용되지 않은 경우
Error Type: Microsoft VBScript runtime (0x800A0046)
Permission denied: 'CreateObject'

6 을 사용한 경우:
=> System.DllNotFoundException: Unable to load DLL(oci.dll)


7. 기타 문제

a) The Specified Module Could Not be Found
b) ORA-00604: error occurred at recursive SQL level 1
ORA-12705: invalid or unknown NLS parameter value specified
c) Unable to load DLL (OraOps9.dll)
d) System Error 998 trying to run ASP Page



해결 방법:

1. 관리자로 로그인
2. 오라클 클라이언트의 루트 폴더로 이동 (기본값은 c:\oracle\ora92 )
3. ora92 폴더의 속성 창에서 "보안" 탭을 선택
4. "승인된 사용자" 에 포커스를 두고 "읽기 & 쓰기" 의 체크 박스에
체크를 뺏다가 다시 체크합니다. 허용을 다시 리프레쉬하는 것입니다.
5. 그리고 재 부팅합니다.



아래는 영어 원문입니다.


Problem Description
-------------------

When running an application using the Oracle9i Release 2 (9.2.0.1.0) install
of client software and that attempts to connect to an Oracle database with the
Authenticated User privilege (such as when you use Microsoft's Internet
Information Server (IIS)) through any of the following programmatic interfaces

1. Oracle Provider for OLE DB
2. Microsoft OLE DB Provider for Oracle
3. Oracle ODBC Driver
4. Microsoft ODBC for Oracle
5. Oracle Objects for OLE (OO4O)
6. Microsoft .NET Framework Data Provider for Oracle


you may receive one of the following errors:


(1) Oracle Provider for OLE DB

(a) Error Type: Microsoft OLE DB Service Components (0x80070005)

Access is denied.


(b) OraOLEDB.Oracle Provider is not registered on the local machine


(2) Microsoft OLE DB Provider for Oracle

(a) Error Type: Microsoft OLE DB Provider for Oracle (0x80004005)

Oracle client and networking components were not found. These
components are supplied by Oracle Corporation and are part of the
Oracle Version 7.3.3 or later client software installation. Provider
is unable to function until these components are installed.


(b) Error Type: Microsoft OLE DB Provider for Oracle (0x80004005)

Oracle error occurred, but error message could not be retrieved
from Oracle.


(3) Oracle ODBC Driver

(a) Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

Specified driver could not be loaded due to system error 5 (Oracle
in OraHome92).


(4) Microsoft ODBC for Oracle

(a) The Oracle(tm) client and networking components were not found.
These components are supplied by Oracle Corporation and are part
of the Oracle Version 7.3 (or greater) client software installation.

You will be unable to use this driver until these components have
been installed.


(b) Error number: -2147467259

Error Description: [Microsoft][ODBC Driver Manager] Driver's
SQLAllocHandle on SQL_HANDLE_ENV failed


(5) Oracle Objects for OLE

(a) while using a GLOBAL.ASA file

Error Type: Active Server Pages (0x0)

An error occurred while creating object 'OraSession'.


(b) not using a GLOBAL.ASA file

Error Type: Microsoft VBScript runtime (0x800A0046)

Permission denied: 'CreateObject'


(6) Microsoft .NET Framework Data Provider for Oracle

(a) System.DllNotFoundException: Unable to load DLL (oci.dll).
at System.Data.OracleClient.DBObjectPool.GetObject(Boolean&
isInTransaction)
at System.Data.OracleClient.OracleConnectionPoolManager.
GetPooledConnection(String encryptedConnectionString,
OracleConnectionString options, Boolean& isInTransaction)
at System.Data.OracleClient.OracleConnection.OpenInternal
(OracleConnectionString parsedConnectionString, Object transact)
at System.Data.OracleClient.OracleConnection.Open()
at WCWSItemAvailability.ETAAvailability.SingleAvailability(String
ItemNumber, String BusinessUnit, Int32 OrderQty, Int32&
AvailableQty, Int32& OnHandQty, String& ETADate, Int32& Error)
at WCWSItemAvailability.ETAAvailability.XMLAvailability(String
XMLInput)


(7) Other miscellaneous errors

(a) The Specified Module Could Not Be Found

(b) ORA-00604: error occurred at recursive SQL level 1
ORA-12705: invalid or unknown NLS parameter value specified

(c) Unable to load DLL (OraOps9.dll):
...
[DllNotFoundException: Unable to load DLL (OraOps9.dll).]

(d) System Error 998 trying to run ASP page


Solution Description
--------------------

Oracle 9.2 Client software requires that you give the Authenticated User
privilege to the Oracle Home by following these steps:

1. Log on to Windows as a user with Administrator privileges.

2. Launch Windows Explorer from the Start Menu and navigate to the
ORACLE_HOME folder. This is typically the "Ora92" folder under the
"Oracle" folder (i.e. D:\Oracle\Ora92).

3. Right-click on the ORACLE_HOME folder and choose the "Properties" option
from the drop down list. A "Properties" window should appear.

4. Click on the "Security" tab of the "Properties" window.

5. Click on "Authenticated Users" item in the "Name" list (on Windows XP
the "Name" list is called "Group or user names").

6. Uncheck the "Read and Execute" box in the "Permissions" list under the
"Allow" column (on Windows XP the "Permissions" list is called
"Permissions for Authenticated Users").

7. Re-check the "Read and Execute" box under the "Allow" column (this is
the box you just unchecked).

8. Click the "Advanced" button and in the "Permission Entries" list make
sure you see the "Authenticated Users" listed there with:

Permission = Read & Execute
Apply To = This folder, subfolders and files

If this is NOT the case, edit that line and make sure the "Apply onto"
drop-down box is set to "This folder, subfolders and files". This
should already be set properly but it is important that you verify this.

9. Click the "Ok" button until you close out all of the security properties
windows. The cursor may present the hour glass for a few seconds as it
applies the permissions you just changed to all subfolders and files.

10. Reboot your computer to assure that these changes have taken effect.


Re-execute the application and it should now work.


Explanation
-----------

If you install Oracle9i Release 2 (9.2.0.1.0) on a computer running Windows
with an NTFS partition, the contents of ORACLE_HOME directory will not be
visible to users who are authenticated on that machine. These permissions
were not set properly when the software was installed.

Applications that were working fine with previous versions of Oracle software
will stop working when they upgrade to Oracle 9.2.

NOTE: The application will continue to work if the user has logged onto the
machine as an Administrator.

Any application that is using the Authenticated User privilege will not work.
A notable example would be IIS which might service some of the requests based
on the Authenticated User privileges.

To demonstrate the problem in further detail, you can log on to the operating
system as an authenticated machine user. You won't be able browse the contents
of the ORACLE_HOME directory demonstrating your inability to load any Oracle DLLs
or make a connection.


Additional Information
----------------------

The above error messages may not only be encountered when using Oracle 9.2
client software but may also exists when running into general permissions
issues using third party products on a Windows platform.



 댓글 (0)


일반팁
페이지: 1 / 4   

 

  oledb 접근 오류
윈2000 서버에서 델파이6, 오라클9i, IIS 이러한 환경에서 개발을 하다가 오라클9i 클라이언트에서 OLE DB 를 이용할 경우 오라클9i 에 접속하지 못하는 에러가 생겼습니다. 문서는 영문이여서 주요 부문만 번역합니다. 문제 설명 ========= 다음과 같은 방식으로 승인된 사용자 (Authenticated User) 권한(홈마스타)     조회(4619)          




  ASP 에서 MDB 사용
'현재 실행되고있는 asp페이지와 db1.mdb가 같은 폴더에 위치하고 있다면 아래와같이.. '아니면 Server.MapPath("/x폴더/x폴더") & "\db1.mdb"와 같은 형식으로 fpath = Server.MapPath(".") & "\db1.mdb" radio = request.form("radio") strConn(홈마스타)     조회(861)          




    [RE] ASP 에서 MDB 사용
1. 절대경로를 사용할 경우에는, strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\4webber\db.mdb" Set Db = Server.CreateObject("ADODB.Connection") Db.Open strConnection 2. 또 웹호스팅(홈마스타)     조회(671)          




  Global.asa 파일에 대하여
global.asa는 상당히 까다로운 작업들을 녀석이 알아서 해결해 주는 착한 녀셕입니다. 그 까다로운 작업이란 것은 어플리케이션이 시작되고 끝나는 시점과 세션이 시작되고 끝나는 시점을 체크하는 것이다. 이 global.asa 가 없다면 어떻게 그러한 시점들을 우리가 체크할 수 있을지 막막하다. 또한, 이 Global.asa 는 우리의 웹 사이트(홈마스타)     댓글 (1)     조회(731)          




  배열의 순차정리 - Asp에서 for 문을 돌려 얻
num(i) then temp=num(j) num(j)=num(i) num(i)=temp end if next response.write num(i)&"" next %> 결과: 615 234 229 213 213 167 123 122 82 22 위와같이 돌리면 num배열에 들어가있는 (홈마스타)     조회(1096)          




    [RE] 배열의 순차정리
arr(j) Then '앞 요소의 값이 뒷 요소보다 크면 값을 바꾼다. temp = arr(j-1) arr(j-1) = arr(j) arr(j) = temp End If Next Next '0부터 배열의 요소만큼 루프를 돌면서 출력을 한다. For i = 0 To UBound(arr) re(홈마스타)     조회(683)          






  Redirect 예제
Redirect 예제 <% Response.Redirect ( "http://piacom.sarang.net" ) %> Redirect 에러 응답 개체 error 'ASP 0156 : 80004005' 헤더 오류 /body.asp, line 32 클라이언트 브라우저에 HTTP 헤더가 이미 쓰여 (홈마스타)     조회(741)          




  항목이 몇개인지 모르는 배열에 저장된 내용..출력하
항목이 몇개인지 모르는 배열에 저장된 내용..문제를 읽어보면 배열 선언을 하지 않고 미리 있던 배열에서 배열수만큼 출력을 하라는 의도인것 같습니다. A배열이 5개의 값이 들어간 1차원배열이다. 에서 5개란걸 모르는 상태죠. 이럴때 ubound() 함수를 사용합니다. 배열의 최대인덱스를 가져오는 함수입니다. ubound(변수명,차원수) 기본(홈마스타)     조회(783)          




  asp에서 자료삭제할때
아래와 같이 파일시스템을 이용하면 될것 같습니다. Set fsFrm = Server.CreateObject("Scripting.FileSystemObject") strFileWholePath = DirectoryPath & "" & strfilename '--파일이 존재한다면 삭제실행 if fsFrm.FileExists(strFileWholePath(홈마스타)     조회(638)          




  asp 로 파일 쓰기를 하려는데 계속 에러가 발생합
내컴퓨터-관리-서비스-기본웹서비스-해당디렉토리 현재 상황으로봐서는 해당계정의 쓰기권한이 없는것 같습니다. 즉 해당경로는 c:mobile 이므로 c:mobile폴더에 대한 해당계정에 쓰기권한을 주시면 간단히 해결될 것 같습니다. 물론 파일을 생성하고자하는 특정계정이 있다면 특정계정의 쓰기권한을 혹은 웹에 접근해서 인증되지 않은 익명의 사용자가 (홈마스타)     댓글 (2)     조회(687)          




≪ [1]  [2]  [3]  [4]   ≫

복수단어 검색은 공백(space)로 구분해 주세요.




최근 글
[손님]


인기 글
[손님]