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 (C) 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
...
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 (C) 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>
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>
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>
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
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>
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>
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>
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 (C) 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
...
\@(
Sl1\
'F:
2rH
YUn))
U K(4EeF
_v]
W:p
/HUE{
ru/T
0^}
pRS(
eE.YY
WC=/
/3=
o$A
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
...
exfsys
dip
dbsnmp
ctxsys
appqossys
apex_public_user
apex_030200
anonymous
- 강좌 URL : http://www.gurubee.net/lecture/4077
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.