일반 케이스 설정 |
---|
{code:sql} SQL> create tablespace new_in_the_clear datafile 'D:\app\LG\data_file\new_in_the_clear.dbf' size 1m; |
테이블스페이스가 생성되었습니다.
SQL> create table new_t
2 ( id varchar2( 30 ) primary key,
3 ssn varchar2( 11 ) ,
4 address varchar2( 80 ) ,
5 credit_card varchar2( 30 )
6 )tablespace new_in_the_clear;
테이블이 생성되었습니다.
SQL> insert into new_t( id, ssn, address, credit_card ) values( 'Lock for me', '123-45-6789', '123 Main Street', '1234-5678-9876-5432' );
1 개의 행이 만들어졌습니다.
SQL> commit;
SQL> alter system checkpoint
2 ;
시스템이 변경되었습니다.
D:\app\LG>strings -a D:\app\LG\data_file\new_in_the_clear.dbf
Strings v2.51
Copyright © 1999-2013 Mark Russinovich
Sysinternals - www.sysinternals.com
}|{z
LQJHLEE68
NEW_IN_THE_CLEAR
Lock for me
123-45-6789
123 Main Street
1234-5678-9876-5432
/ec886133_HistogramHash
/c76191f4_LookupCRIF
/c46a4786_ConstantCRIF
/5c3572a5_MaxFilterXOpImage
/53b33dfb_MagnitudePhaseOpImag
/7574e0ae_DivideComplexCRIF
/a79ab000_TransposeBinaryOpIma
/9633a9ba_MultiplyCRIF
/18c763e5_FilteredSubsampleOpI
/2170a9c1_AndCRIF
...
{code} | 삭제시 |
---|---|
{code:sql} SQL> delete from new_t where id = 'Lock for me'; |
1 행이 삭제되었습니다.
SQL> COMMIT;
커밋이 완료되었습니다.
SQL> ALTER SYSTEM CHECKPOINT;
시스템이 변경되었습니다.
D:\app\LG>strings -a D:\app\LG\data_file\new_in_the_clear.dbf
Strings v2.51
Copyright © 1999-2013 Mark Russinovich
Sysinternals - www.sysinternals.com
}|{z
LQJHLEE68
NEW_IN_THE_CLEAR
Lock for me
123-45-6789
123 Main Street
1234-5678-9876-5432
/ec886133_HistogramHash
/c76191f4_LookupCRIF
/c46a4786_ConstantCRIF
/5c3572a5_MaxFilterXOpImage
/53b33dfb_MagnitudePhaseOpImag
/7574e0ae_DivideComplexCRIF
/a79ab000_TransposeBinaryOpIma
/9633a9ba_MultiplyCRIF
/18c763e5_FilteredSubsampleOpI
/2170a9c1_AndCRIF
/157a0d70_SubsampleBinaryToGra
/45f59a27_StreamImage
/5600a10a_AddConstToCollection
/8ada891e_MagnitudeCRIF
/91f23f8_DivideByConstCRIF
/27561cdd_MeanOpImage
/c321a3cb_ColorConvertOpImageI
...
SQL>
|| current online redo log ||
|{code:sql}
SQL> select a.member
2 from v$logfile a, v$log b
3 where a.group# = b.group#
4 and b.status = 'CURRENT'
5 and rownum = 1;
MEMBER
------------------------------------------------------------------------------
D:\APP\LG\ORADATA\JHLEE68\REDO02.LOG
D:\app\LG>strings -a D:\APP\LG\ORADATA\JHLEE68\REDO02.LOG
...
l memory b
Lock for me
Lock for me
Lock for me
segment header
segment header
segment header
...
SQL>
생성 확인 |
---|
{CODE:SQL} D:\app\LG\product\11.2.0\dbhome_1\NETWORK\ADMIN>DIR D 드라이브의 볼륨에는 이름이 없습니다. 볼륨 일련 번호: 74FA-1C6B |
D:\app\LG\product\11.2.0\dbhome_1\NETWORK\ADMIN 디렉터리
2015-01-26 오후 07:20 <DIR> .
2015-01-26 오후 07:20 <DIR> ..
2015-01-26 오후 07:04 <DIR> SAMPLE
2015-01-29 오후 09:34 402 sqlnet.ora
1개 파일 402 바이트
3개 디렉터리 242,302,930,944 바이트 남음
D:\app\LG\product\11.2.0\dbhome_1\NETWORK\ADMIN>
SQLNET.AUTHENTICATION_SERVICES = (NTS)
ENCRYPTION_WALLET_LOCATION=
(SOURCE=(METHOD=FILE)(METHOD_DATA=
(DIRECTORY=D:\app\LG\product\11.2.0\dbhome_1\admin\wallet)))
SQL> alter system set encryption key identified by foobar
2 ;
alter system set encryption key identified by foobar
*
1행에 오류:
ORA-28368: 전자 지갑을 자동으로 생성할 수 없습니다.
D:\app\LG\product\11.2.0\dbhome_1\admin\wallet>dir
D 드라이브의 볼륨에는 이름이 없습니다.
볼륨 일련 번호: 74FA-1C6B
D:\app\LG\product\11.2.0\dbhome_1\admin\wallet 디렉터리
2015-01-29 오후 10:47 <DIR> .
2015-01-29 오후 10:47 <DIR> ..
0개 파일 0 바이트
2개 디렉터리 242,302,869,504 바이트 남음
SQLNET.AUTHENTICATION_SERVICES = (TNSNAMES, EZCONNECT)
ENCRYPTION_WALLET_LOCATION=
(SOURCE=(METHOD=FILE)
(METHOD_DATA=
(DIRECTORY=D:\app\LG\product\11.2.0\dbhome_1\admin\wallet )
)
)
SQL> alter system set encryption key identified by foobar;
alter system set encryption key identified by foobar
*
1행에 오류:
ORA-28368: 전자 지갑을 자동으로 생성할 수 없습니다.
-- 재기동을 해야하는건가?
SQL> shutdown abort
ORACLE 인스턴스가 종료되었습니다.
SQL> conn sys/1111 as sysdba
휴지 인스턴스에 접속되었습니다.
SQL>
SQL>
SQL> startup
ORACLE 인스턴스가 시작되었습니다.
Total System Global Area 2522038272 bytes
Fixed Size 2283864 bytes
Variable Size 620758696 bytes
Database Buffers 1879048192 bytes
Redo Buffers 19947520 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.
SQL>
SQL>
SQL>
SQL> alter system set encryption key identified by foobar;
시스템이 변경되었습니다.
D:\app\LG\product\11.2.0\dbhome_1\admin\wallet>dir
D 드라이브의 볼륨에는 이름이 없습니다.
볼륨 일련 번호: 74FA-1C6B
D:\app\LG\product\11.2.0\dbhome_1\admin\wallet 디렉터리
2015-01-29 오후 10:53 <DIR> .
2015-01-29 오후 10:53 <DIR> ..
2015-01-29 오후 10:53 2,845 ewallet.p12
1개 파일 2,845 바이트
2개 디렉터리 242,302,746,624 바이트 남음
D:\app\LG\product\11.2.0\dbhome_1\admin\wallet>
SQL> alter system set encryption wallet open identified by foobar;
alter system set encryption wallet open identified by foobar
*
1행에 오류:
ORA-28354: 암호화 전자 지갑, 자동 로그인 전자 지갑 또는 HSM이 이미 열려
있습니다.
-- 머지? ㅠ
-- 암호화된 데이터의 액세스을 차단( 읽기 및 쓰기 불가능 )
SQL> alter system set encryption wallet close identified by foobar;
시스템이 변경되었습니다.
SQL>
{CODE}
SQL> create tablespace tde_test datafile 'D:\app\LG\data_file\tde_test.dbf' size 1m
2 ;
테이블스페이스가 생성되었습니다.
SQL>
SQL> create table tde_col_t
2 ( c1 varchar2( 30 ) ,
3 c2 varchar2( 30 ) encrypt
4 )tablespace tde_test;
c2 varchar2( 30 ) encrypt
*
3행에 오류:
ORA-28336: SYS 소유 객체를 암호화할 수 없습니다. -- 헐
SQL> create table SCOTT.tde_col_t
2 ( c1 varchar2( 30 ) ,
3 c2 varchar2( 30 ) encrypt
4 )tablespace tde_test;
create table SCOTT.tde_col_t
*
1행에 오류:
ORA-28365: 전자 지갑이 열려 있지 않습니다.
SQL> alter system set encryption wallet open identified by foobar;
시스템이 변경되었습니다.
SQL>
SQL> create table SCOTT.tde_col_t
2 ( c1 varchar2( 30 ) ,
3 c2 varchar2( 30 ) encrypt
4 )tablespace tde_test;
테이블이 생성되었습니다.
SQL>
SQL> insert into SCOTT.tde_col_t values( 'this_is_NOT_encrypted', 'this_is_encrypted' );
1 개의 행이 만들어졌습니다.
SQL> select * from SCOTT.tde_col_t
2 ;
C1 C2
------------------------------ ------------------------------
this_is_NOT_encrypted this_is_encrypted
SQL>
SQL>
|| 누군가 절취한 상황 연출 wallet close||
SQL> alter system set encryption wallet close identified by foobar;
시스템이 변경되었습니다.
SQL> select * from SCOTT.tde_col_t
2 ;
select * from SCOTT.tde_col_t
*
1행에 오류:
ORA-28365: 전자 지갑이 열려 있지 않습니다.
SQL>
SQL> select c1 from SCOTT.tde_col_t ;
C1
------------------------------
this_is_NOT_encrypted
SQL>
SQL> insert into SCOTT.tde_col_t values( 'this_is_NOT_encrypted', 'this_is_encrypted' );
insert into SCOTT.tde_col_t values( 'this_is_NOT_encrypted', 'this_is_encrypted' )
*
1행에 오류:
ORA-28365: 전자 지갑이 열려 있지 않습니다.
SQL> insert into SCOTT.tde_col_t values( 'this_is_NOT_encrypted', null );
1 개의 행이 만들어졌습니다.
SQL> commit;
커밋이 완료되었습니다.
SQL> alter system set encryption wallet open identified by foobar;
시스템이 변경되었습니다.
SQL> select * from SCOTT.tde_col_t;
C1 C2
------------------------------ ------------------------------
this_is_NOT_encrypted this_is_encrypted
this_is_NOT_encrypted
SQL>
|| 데이터파일 내용 확인 ||
SQL> alter system checkpoint
2 ;
시스템이 변경되었습니다.
D:\app\LG>strings -a D:\app\LG\data_file\tde_test.dbf
Strings v2.51
Copyright (C) 1999-2013 Mark Russinovich
Sysinternals - www.sysinternals.com
}|{z
LQJHLEE68
TDE_TEST
this_is_NOT_encrypted,
this_is_NOT_encryptedDA,H]
Ge^L
zyh
zqZ
SQL> create tablespace clear datafile 'D:\app\LG\data_file\clear.dbf' size 1m;
테이블스페이스가 생성되었습니다.
SQL> create tablespace encrypted datafile 'D:\app\LG\data_file\encrypted.dbf' size 1m
2 encryption default storage ( encrypt );
테이블스페이스가 생성되었습니다.
SQL> create table SCOTT.ts_clear_t tablespace clear
2 as
3 select *
4 from all_users;
테이블이 생성되었습니다.
SQL> commit;
커밋이 완료되었습니다.
SQL> create index SCOTT.ts_clear_t_ix01 on SCOTT.ts_clear_t ( lower( username )) tablespace clear;
인덱스가 생성되었습니다.
SQL> alter system checkpoint
2 ;
시스템이 변경되었습니다.
SQL>
D:\app\LG>strings -a D:\app\LG\data_file\clear.dbf
Strings v2.51
Copyright (C) 1999-2013 Mark Russinovich
Sysinternals - www.sysinternals.com
}|{z
LQJHLEE68
CLEAR
SYS
SYSTEM
OUTLN
DIP
ORACLE_OCM
DBSNMP
APPQOSSYS
WMSYS
#,
XS$NULL
01%'
EXFSYS
&),
CTXSYS
&6,
XDB
' ,
ANONYMOUS
' ,
ORDSYS
)$,
ORDDATA
)$,
ORDPLUGINS
)$,
SI_INFORMTN_SCHEMA
)$,
MDSYS
)$,
OLAPSYS
. ,
MDDATA
SPATIAL_WFS_ADMIN_USR
3$,
SPATIAL_CSW_ADMIN_USR
3(,
SYSMAN
3;,
MGMT_VIEW
FLOWS_FILES
APEX_PUBLIC_USER
APEX_030200
OWBSYS
OWBSYS_AUDIT
SCOTT
xs$null
xdb
wmsys
system
sysman
sys
spatial_wfs_admin_usr
spatial_csw_admin_usr
si_informtn_schema
scott
owbsys_audit
owbsys
outln
ordsys
ordplugins
orddata
oracle_ocm
olapsys
mgmt_view
mdsys
mddata
flows_files
exfsys
dip
dbsnmp
ctxsys
appqossys
apex_public_user
apex_030200
anonymous
D:\app\LG>
|| 컬럼레벨 암호화 제약 조건 FBI 불가 ||
{CODE:SQL}
SQL> ALTER TABLE SCOTT.ts_clear_t MODIFY USERNAME ENCRYPT;
ALTER TABLE SCOTT.ts_clear_t MODIFY USERNAME ENCRYPT
*
1행에 오류:
ORA-28348: 지정된 열에 정의된 인덱스를 암호화할 수 없습니다.
SQL> DROP INDEX SCOTT.ts_clear_t_ix01;
인덱스가 삭제되었습니다.
SQL> ALTER TABLE SCOTT.ts_clear_t MODIFY USERNAME ENCRYPT;
테이블이 변경되었습니다.
SQL> -- 테이블 초기화 및 생성
SQL> ALTER TABLE SCOTT.ts_clear_t MOVE TABLESPACE ENCRYPTED;
테이블이 변경되었습니다.
SQL> ALTER INDEX SCOTT.ts_clear_t_ix01 REBUILD TABLESPACE ENCRYPTED
2 ;
인덱스가 변경되었습니다.
D:\app\LG>strings -a D:\app\LG\data_file\encrypted.dbf
Strings v2.51
Copyright © 1999-2013 Mark Russinovich
Sysinternals - www.sysinternals.com
}|{z
LQJHLEE68
ENCRYPTED
>cN
+?uU
fvi
^,z
Odn
G2{
~$w
k[^*{
X!?]
_;7
H.K
MBQ8
N9&
b+7
s^^
PF2GrF
J>~
r,,
qjV
)DYr
!^,
%or
.q.
SYg"
RDQE
9 @
UOt8
yaL
ny1dJ
[7K
*M$
DEW
ecl
dx?
/Ye(
QP!o}y*qox
g>N
;?!
vWm
QDbP
\@(
Sl1\
'F:
2rH
R 8
j_K!
vxZ~>
o0Y
.c7X
d2n
$.,
>x\
s,;
csv
Yt5
ji/
wW:}
`LpI
{tHMf
g%`0W
agn
1j0
VaRQ
Qli
Wr?`
>)cl
72<
fES
6qV
aaH
G9y
x?g
X [
Z\9
9j
;`d{
/u`
I7[
vN=U
Kc/
8P9e
c!~
p_!
@G8
S],
x&L
k^;
g1Y
]Y0
!cN
\oJ+
*Vl
`0i
.kN
L4@N4CBb6
}#g
p2$
AM#@
7cW
{G`
7!zS>C
v:C
OqG
f3?d
71>~B?
=@G
&R)cP
Wim
o58@
Had
PEyq
91Jb
d^J
i?ZAI
Jgb7
6{g
7RN
v!4
y{vL
q09F
AxK
b#s'c
?I3
P )
[N!
.OR
B%
=0F
Nu'
X^O
8@c
NVu
y/~*
{Lg
3ecW
`nQ
0#Q8
[ 0u>,
jVk
0A|
e5}-
_kN
_$g
>4y
YUn))
U K(4EeF
_v]
W:p
/HUE{
ru/T
0^}
pRS(
eE.YY
WC=/
/3=
o$A
{CODE} || MOVE == COPY ||
{CODE:SQL}
D:\app\LG>strings -a D:\app\LG\data_file\clear.dbf
Strings v2.51
Copyright © 1999-2013 Mark Russinovich
Sysinternals - www.sysinternals.com
}|{z
LQJHLEE68
CLEAR
SYS
SYSTEM
OUTLN
DIP
ORACLE_OCM
DBSNMP
APPQOSSYS
WMSYS
#,
XS$NULL
01%'
EXFSYS
&),
CTXSYS
&6,
XDB
' ,
ANONYMOUS
' ,
ORDSYS
)$,
ORDDATA
)$,
ORDPLUGINS
)$,
SI_INFORMTN_SCHEMA
)$,
MDSYS
)$,
OLAPSYS
. ,
MDDATA
SPATIAL_WFS_ADMIN_USR
3$,
SPATIAL_CSW_ADMIN_USR
3(,
SYSMAN
3;,
MGMT_VIEW
FLOWS_FILES
APEX_PUBLIC_USER
APEX_030200
OWBSYS
OWBSYS_AUDIT
SCOTT
xs$null
xdb
wmsys
system
sysman
sys
spatial_wfs_admin_usr
spatial_csw_admin_usr
si_informtn_schema
scott
owbsys_audit
owbsys
outln
ordsys
ordplugins
orddata
oracle_ocm
olapsys
mgmt_view
mdsys
mddata
flows_files
exfsys
dip
dbsnmp
ctxsys
appqossys
apex_public_user
apex_030200
anonymous
D:\app\LG>
{CODE}