2009년 8월 6일 목요일

Oracle DB 보안

   

Standard Auditing 절차

1. 설정 변경 후 Oracle 재시작

   

   

2. Auditing 실행

emp 테이블에 대해 auditing 실행

2.5 Scott User의 emp 테이블 수정

3. Audit Table 확인

 

 

4. 내용 삭제

   

Value-Based Auditing

System 계정에서 다음과 같이 실행

1. 내용이 저장될 테이블 생성

   

2. 트리거 실행

   

3. HR에서 employees 테이블 수정

   

4. 테이블 및 Auditing 내용 확인

   

sys_context 사용

   

트리거 생성

1. 내용이 저장될 테이블 생성

   

2. EM에서 트리거 생성

Show SQL

CREATE OR REPLACE TRIGGER "SYS"."LOGONLOG" AFTER

LOGON ON DATABASE begin

insert into system.log values(sysdate,sys_context('userenv','IP_ADDRESS'),sys_context('userenv','session_user'));

end;

 

 

 

   

학습 by OBE(Oracle By Example)  : 가격이 저렴하고 모두 사용가능

C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>notepad sqlnet.ora

ENCRYPTION_WALLET_LOCATION=

  (SOURCE=(METHOD=FILE)(METHOD_DATA=

   (DIRECTORY=C:\oracle\product\10.2.0\db_1)))       데이터 베이스 암호화

   

S SYS> host

C:\>cd wkdir

C:\wkdir>sqlplus / as sysdba

S SYS> @tde00_dbsetup         암호 설정  (tde00_dbsetup에 설정된 값 : alter system set key identified by "welcome1";)

연결되었습니다.

시스템이 변경되었습니다.         

Create a Table with an Encrypted Column

        S SYSTEM> @tde01_crusers 

S SYSTEM> @tde02_crtabl

S OE> desc cust_payment_info

S OE> @tde03_poptabl

S OE> @tde04_cridx

S OE> @tde05_grant_access

Making Changes on Encrypted Data

S OE> @tde06_make_update

S LSMITH> @tde06a_review_xplan

S LSMITH> @tde07_select_encrypt_col

Adding and Applying a VPD Policy

S OE> @tde08_crfunction

v_user := lower(sys_context('userenv','session_user'));   실행시킨 유저의 ID

S SYSTEM> conn / as sysdba

S SYS> r

  1  select object_name,procedure_name from dba_procedures

  2* where object_name like 'DBMS%' and procedure_name like '%POLICY%'

S SYS> spool DBMS_RLS

S SYS> desc DBMS_RLS

S SYS> spool off

S SYS> host notepad DBMS_RLS.lst

S SYS> @tde09_addpolicy

Testing the policy

S SYS> select * from oe.cust_payment_info;

 FIRST_NAME  LAST_NAME  ORDER_NUMBER CREDIT_CARD_NUMB ACT

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

Jon         Oldfield          10001 5446959708812985 YES

Chris       White             10002 5122358046082560 YES

Alan        Squire            10003 5595968943757920 YES

Mike        Anderson          10004 4929889576357400 YES

Annie       Schmidt           10005 4556988708236902 NO

Elliott     Meyer             10006 374366599711820  YES

Celine      Smith             10007 4716898533036    YES

Steve       Haslam            10008 340975900376858  YES

Albert      Einstein          10009 310654305412389  YES

9 개의 행이 선택되었습니다.

S JKING> @tde10_testpolicy_jking

*** Connect as Janette King (Card_A)

연결되었습니다.

FIRST_NAME  LAST_NAME  ORDER_NUMBER Card_A             ACT

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

Steve       Haslam            10008 340975900376858    YES

Elliott     Meyer             10006 374366599711820    YES

2개의 행이 선택되었습니다.

S HR> @c:\wkdir\tde11_testpolicy_ldoran         사용자에 따라 출력되는 내용이 다르다!!

*** Connect as Louise Doran (Card_M)

연결되었습니다.

FIRST_NAME  LAST_NAME  ORDER_NUMBER Card_M             ACT

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

Chris       White             10002 5122358046082560   YES

Jon         Oldfield          10001 5446959708812985   YES

Alan        Squire            10003 5595968943757920   YES

Clean Up

S LDORAN> @c:\wkdir\tde16_cleanup

   

S SYS> create table hr.dba_tab as select * from dba_tables;

테이블이 생성되었습니다.

S SYS> create table hr.dba_usr as select * from dba_users;

테이블이 생성되었습니다.

댓글 없음:

댓글 쓰기