카테고리 없음2019. 5. 14. 15:13

제목 : TDE 테스트

 

테스트 환경

DB 버전 : Oracle 12c EE(12.2.0.1)

OS 버전 : Oracle Linux Server release 7.6

 

 


 

시나리오 요약

 1. TDE 환경 구축

 2. 테스트용 유저, 테이블스페이스, 테이블 생성

 3. TDE 자동 로그인 설정

 4. 확인

 


시나리오 상세 및 테스트 로그

 

1. TDE 환경 구축

  1) 디렉토리 생성

$ cd /u01/app/oracle/product/12.2.0
$ mkdir WALLET


  2) sqlnet.ora 편집
[oracle@datasvc-db admin]$ cat sqlnet.ora
sqlnet.ora Network Configuration File: /u01/app/oracle/product/12.2.0/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

ENCRYPTION_WALLET_LOCATION =
  (SOURCE =(METHOD = FILE)(METHOD_DATA =
    (DIRECTORY = /u01/app/oracle/product/11.2.0/WALLET)))

#sqlnet.authentication_services=(none)


  3) key store 생성

SQL> administer key management create keystore '/u01/app/oracle/product/11.2.0/WALLET/' identified by wallet#123;

keystore altered.


  4) open key store

SQL> administer key management set keystore open identified by wallet#123;

keystore altered.


  5) key 활성화
SQL> administer key management set key identified by wallet#123 with backup;

keystore altered.

  6) 설정 확인
SQL> select con_id, key_id from v$encryption_keys;

    CON_ID KEY_ID
---------- ------------------------------------------------------------------------------
 0 AQPScKAD2U9Qv+bhIHGUBkkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA


  7) key 확인
set lines 200
col wrl_parameter for a50
select * from v$encryption_wallet;

BAC     CON_ID
-------------------- -------------------------------------------------- ------------------------------ -------------------- -------
FILE      /u01/app/oracle/product/11.2.0/WALLET/ OPEN        PASSWORD      SINGLE    NO    0

 

2. 테스트용 유저, 테이블스페이스, 테이블 생성


  1) 암호화 테이블스페이스 생성


SQL> create tablespace tbs_tde_test datafile '/u01/oradata_12c/ORA12KO/tbs_tde_test_01.dbf' size 100M  
  2  encryption using 'AES256' default storage(ENCRYPT);

Tablespace created.



  2) 유저 생성 / 권한 부여 / 디폴트 테이블스페이스 지정
SQL> create user tde_test identified by "tde_test123!";

User created.

SQL> grant dba to tde_test;

Grant succeeded.

SQL> alter user tde_test default tablespace tbs_tde_test;

User altered.


  3) 테스트용 테이블 생성


SQL> conn tde_test/tde_test123!
Connected.

SQL> create table tb_tde_test (owner varchar2(128), table_name varchar(128) encrypt);

Table created.

SQL> insert into tb_tde_test
  2  select owner, table_name from dba_tables;

2567 rows created.

SQL> commit;

Commit complete.



  4) 테이블정보 확인

SQL> select owner, table_name, column_name, encryption_alg from dba_encrypted_columns
where table_name = 'TB_TDE_TEST'

OWNER        TABLE_NAME COLUMN_NAME  ENCRYPTION_ALG
------------------------------ ---------------------------------------- ---------------------------------------- ------------------
TDE_TEST        TB_TDE_TEST TABLE_NAME  AES 192 bits key

3. TDE 자동 로그인 설정

SQL> administer key management create auto_login keystore from keystore '/u01/app/oracle/product/11.2.0/WALLET/' identified by wallet#123;

keystore altered.

4. 재기동 후 확인

- 재기동
SQL> startup force;


- 확인

select * from tde_test.tb_tde_test;

OWNER        TABLE_NAME
------------------------------ ----------------------------------------

... 중간 생략 ...


APEX_050000        WWV_MIG_FRM_MENUSMODULEROLES
APEX_050000        WWV_MIG_FRM_MENU
APEX_050000        WWV_MIG_FRM_MENU_MENUITEM
APEX_050000        WWV_MIG_FRM_MENUITEM_ROLE

2567 rows selected.


참고문서 : 

https://dbaclass.com/article/transparent-data-encryption-tde-in-oracle-12c/

Posted by 자수성가한 부자