Database/ORACLE | Posted by locke 2011.10.11 11:07

오라클 암호화 설정및 사용법


----------------------- 권한 설정 ---------------------------------------

sqlplus " /as sysdba "

grant execute on DBMS_CRYPTO to user;

--------------------------------------------------------------

CREATE OR REPLACE PACKAGE PACK_ENCRYPTION_DECRYPTION 

IS 

FUNCTION FUNC_ENCRYPT 

( V_INPUT_STRING IN VARCHAR2, 

KEY_DATA IN VARCHAR2 := 'JAVA302$' 

) RETURN RAW; 

 

FUNCTION FUNC_DECRYPT 

( V_INPUT_STRING IN VARCHAR2, 

KEY_DATA IN VARCHAR2 := 'JAVA302$' 

) RETURN VARCHAR2; 

END PACK_ENCRYPTION_DECRYPTION; 


------------------------------------------------------------------

CREATE OR REPLACE PACKAGE BODY PACK_ENCRYPTION_DECRYPTION 

IS 

 

FUNCTION FUNC_ENCRYPT 

( V_INPUT_STRING IN VARCHAR2, 

KEY_DATA IN VARCHAR2 := 'JAVA302$' 

) RETURN RAW 

IS 

V_ORIGINAL_RAW RAW(64); 

V_KEY_DATA_RAW RAW(64); 

ENCRYTED_RAW RAW(64); 

BEGIN 

V_ORIGINAL_RAW := UTL_I18N.STRING_TO_RAW(V_INPUT_STRING, 'AL32UTF8'); -- RAW 타입으로 변경해주어야 한다. 

V_KEY_DATA_RAW := UTL_I18N.STRING_TO_RAW(KEY_DATA, 'AL32UTF8'); -- RAW 타입으로 변경해주어야 한다. 

 

ENCRYTED_RAW := DBMS_CRYPTO.ENCRYPT(SRC => V_ORIGINAL_RAW, 

TYP => DBMS_CRYPTO.DES_CBC_PKCS5, 

KEY => V_KEY_DATA_RAW, 

IV => NULL); 

 

RETURN ENCRYTED_RAW; 

END FUNC_ENCRYPT; 

 

 

FUNCTION FUNC_DECRYPT 

( V_INPUT_STRING IN VARCHAR2, 

KEY_DATA IN VARCHAR2 := 'JAVA302$' 

) RETURN VARCHAR2 

IS 

V_KEY_DATA_RAW RAW(64); 

DECRYPTED_RAW RAW(64); 

CONVERTED_STRING VARCHAR2(64); 

BEGIN 

V_KEY_DATA_RAW := UTL_I18N.STRING_TO_RAW(KEY_DATA, 'AL32UTF8'); 

 

DECRYPTED_RAW := DBMS_CRYPTO.DECRYPT(SRC => V_INPUT_STRING, 

TYP => DBMS_CRYPTO.DES_CBC_PKCS5, 

KEY => V_KEY_DATA_RAW, 

IV => NULL); 

 

CONVERTED_STRING := UTL_I18N.RAW_TO_CHAR(DECRYPTED_RAW, 'AL32UTF8'); 

 

RETURN CONVERTED_STRING; 

END FUNC_DECRYPT; 

 

END PACK_ENCRYPTION_DECRYPTION; 

------------------------------ 테스트 -------------------------------------------

SELECT PACK_ENCRYPTION_DECRYPTION.FUNC_ENCRYPT('1234') 
FROM DUAL; 

SELECT PACK_ENCRYPTION_DECRYPTION.FUNC_DECRYPT('8E6676CB7C2296DD') 
FROM DUAL; 

Database/ORACLE | Posted by locke 2010.06.11 16:41

수동 start


sqlplus ' as sysdba'
startup

메뉴 > 문서 > 파일형식 > PC로 선택후 저장.

Have you gotten the error; "RemoteOperationException: ERROR: wrong password for user" with Oracle 10g?  If so, it is probably because the OS user that you are trying to login to the Oracle Enterprise Manager with has not been setup to allow the user to logon as a "Batch Job."  To resolve this issue:

  1. Go to "Control Panel" -> "Admin Tools" -> "Local Security Policy."
  2. Within "Local Policies", go to user "Right Assignment."
  3. Add the user to "Logon as a Batch Job."

The logon problem should now be resolved.  This is for trying to run Oracle 10g on Windows 2003 Server.

Database/ORACLE | Posted by locke 2007.06.05 22:49

오라클 삭제하기(윈도우2k, xp)

원도우 2K에서 오라클 삭제하는 방법

1) dbca를 실행시켜 생성된 Database를 모두 삭제.

2) [내컴퓨터>관리>서비스 및 응용프로그램> 서비스 에서 OracleServiceSID]에
해당하는 것이 삭제 되었는지 확인.

3) [C: 또는 D:]\oracle\oradata 디렉토리, [C: 또는 D:]\oracle\admin 디렉토리에
아무것도 없어야 됨.
    (주의) 만약, 위의 디렉토리들의 내용이 삭제되지 않는 경우엔, 직접 삭제.
           반드시 1)과 2)수행 후 디렉토리의 내용을 삭제할 것.

4) [내컴퓨터>관리>서비스 및 응용프로그램>서비스 에서 오라클 관련 서비스를 모두
중지시킴.

5) 오라클 설치시디 #1을 넣고 Oracle Universal Installer를 실행.
    >제품 설치 해제 버튼을 눌러서 오라클 프로그램들을 설치해제.

6) 시작버튼 >실행 > regedit 실행
► HKEY_LOCAL_MACHINE >SYSTEM >CurrentControlSet >Services 에서
Oracle 로 시작되는 폴더 및 항목을 모두 삭제.
   ► HKEY_LOCAL_MACHINE> SOFTWARE > ORACLE 폴더를 모두 삭제
7) 재부팅

8) 윈도 탐색기를 이용해 남아있는 [C: 또는 D:]\oracle 디렉토리와
 C:\Program files\oracle 디렉토리를 삭제
 C:\Documents and Settings\Administrator\Local Settings\Temp\
 에 존재하는 OraInstall2005-10-05_10-26-02AM 와 유사 디렉토리도 지울것

완료.


XP에서 오라클 삭제하기

1. 오라클을 삭제하기 전에 서비스에서 동작하고 있는 오라클(Oracle로 시작 되는것들)을 정지 시킨다.
2. uninstall한다.
3. 오라클 레지스트리에서 삭제하기

1) 시작->실행->regedit 입력을 하면 레지스트리 편집기가 나온다..
2) HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE 삭제
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\ 에서 Oracle로 시작되는 것을 삭제
   HKEY_LOCAL_MACHINE -> SYSTEM -> ControlSet001 -> Services에서 Oracle로 시작되는 것을 삭제
   HKEY_LOCAL_MACHINE -> SYSTEM -> ControlSet002 -> Services에서 Oracle로 시작되는 것을 삭제
   HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Services에서 Oracle로 시작되는 것을 삭제

4. HKEY_CLASSES_ROOT 에서 Oracle과 Ora로 시작되는 것을 삭제
   (주의:Ole로 시작되는 것은 지우지 마세요)

5. 설정-> 제어판 -> 시스템을 실행하여 환경 tab에서 autoexec.bat 화일에서 %ORACLE_HOME%\bin과 JRE path를 remove한다.

6. 윈도우를 재부팅후 Oracle폴더를 삭제한다.

Database/ORACLE | Posted by locke 2007.06.04 19:48

오라클sid 확인방법

SQLPLUS에서 확인 가능합니다.
SQL> select name from v$database;

또는 서비스에서 OracleService서비스명

예를 들어 OracleServiceOrcl 가 있을경우 Orcl가 SID 입니다.

오라클 ODBC 설정하기
-> 1. 시작 > 설정 > 제어판 > 관리 도구 > 데이터 원본(ODBC) 클릭
     2. 시스템 DSN 탭을 클릭
     3. 오른쪽에 있는 추가 버튼 클릭
     4. Oracle in OraHome92 선택 후 마침 버튼 클릭
     5. Data Source Name에 임의의 명칭 설정
     6. TNS Service Name에 오라클 설치 시 입력한 sid 이름 선택 후 OK 버튼 클릭
 
오라클 ODBC 설정 후 TEST를 했을 때는 잘 접속되는데 웹 상에서 띄우려고 할 때 나는 에러 잡기
 
ODBC로 접속시 에러 문구
-> Microsoft OLE DB Provider for ODBC Drivers error '80004005'
5 (Oracle in OraHome92) 시스템 오류가 발생하여 지정한 드라이버를 로드하지 못했습니다.
 
OLEDB로 접속시 에러 문구
-> Microsoft OLE DB Provider for Oracle error '80004005'
Oracle 클라이언트 및 네트워킹 구성 요소가 없습니다. 이 구성 요소는 Oracle Corporation에서 제공하며 Oracle 버전 7.3.3 또는 그 이후 버전의 클라이언트 소프트웨어 설치의 일부입니다. 공급자가 작동하려면 이 구성 요소가 설치되어야 합니다.
 
원인
-> IIS가 오라클에 접근을 못해서 나는 에러
 
해결 방법
-> 1. 오라클 홈 디렉토리(C:\oracle\ora92)에서 마우스 오른쪽 버튼 클릭 등록정보 선택
    2. 보안 탭을 선택 후 오른쪽에 있는 추가 버튼 클릭
    3. IWAM_컴퓨터 이름 선택 후 추가 버튼 클릭 후 확인 버튼 클릭(시간이 좀 걸리지만 기다려라)
    4. 컴터를 재부팅하고 돌려 보면 연결이 잘 되는 것을 확인할 수 있을 것이다.
---------------------------------------------------------------------
원인분석및 해결방법 2
위의 방법대로 해도 안되는 경우가 있어서 계속 문제해결에 대해 좀 더 찾아봤습니다.

Microsoft OLE DB Provider for Oracle error '80004005'

Oracle 클라이언트 및 네트워킹 구성 요소를 찾을 수 없습니다. 이 구성 요소는 Oracle에서 제공하며 Oracle 버전 7.3 또는 그 이후 버전의 클라이언트 소프트웨어 설치에 포함됩니다. 공급자가 작동하려면 이 구성 요소가 설치되어야 합니다.

MS사에서 제공하는 OLE DB을 Data Provider로 지정하신듯 싶습니다....

MS사에서 제공한 OLE DB Data provider 는 oracle 10g인 웹에서 인식하지 못하는거 같습니다..

위 에러를 해석해 보면.

' .. error '80004005'' 이런 에러 구문이 뜨면 앞에 있는 객체를 인식하지 못한 에러입니다. 이런 에러는 asp 프로그래밍을 할때 종종 볼 수 있는 에러 구문입니다..

즉, 해당 객체를 생성할 수 없다는 얘기 입니다..


서문이 길었습니다..

결론은 oralce ole db 객체를 인시할 수 있도록 해줘야 한다는 얘기입니다.

asp에서 oracle db와 통신하기 위해서는 TNS Names service  를 이용하게 됩니다.

 웹서버에 있는 oci.dll을 이용하여  서버의 listener가 통신을 하게 되는데, 있는 웹서버 user가 IUSR_호스트명 입니다..

이 사용자가 oci.dll에 접근 권한을 가져야 하는데 권한이 없을 겁니다.

oci.dll은 오라클 설치디렉토리>ora버전>bin 디렉토리에 있습니다.

bin 디렉토리 전체를 IUSR_호스명에 줘도 되고 아님 ocl.dll에만 줘도 됩니다..

잘 되지 않으면, 이 사용자에 권한을 줬다가 지웠다가 해보세요..

권한을 주고나서는 ...

관리도구 > 서비스 >IIS Admin 재시작해 보시기 바랍니다...