问题描述
你好,汤姆,
我有一个名为STRINGS的Unix命令的问题。如果我不对我的数据使用加密,我可以通过Unix读取我的字符串数据,即使这些数据在Oracle下被截断。
德兰格,我也有他们的历史...
首先,我用一个数据文件创建一个表空间。
我在这个表空间中创建一个表。
我们使用表的数据文件进入目录。
我创建数据,我可以看到他们与字符串,如果我强制DBWR写它与缓冲缓存的刷新。
关于我插入的数据没有什么...
如果我刷新缓冲区缓存,那就可以了 (但我不知道什么是AAAAAAAA)。
我如何避免这个问题: 我必须加密我的数据?
如果我截断我的表,我可以再次读取数据。正常吗?
陌生人,我可以在更新后访问数据的历史 :-)
我放弃我的表空间和它的数据文件。
我从一张新表开始。
我们有新旧价值。
我有一个名为STRINGS的Unix命令的问题。如果我不对我的数据使用加密,我可以通过Unix读取我的字符串数据,即使这些数据在Oracle下被截断。
德兰格,我也有他们的历史...
首先,我用一个数据文件创建一个表空间。
SQL> CREATE TABLESPACE TEST_STRINGS DATAFILE '/u01/app/oracle/oradata/orcl12c/orcl/test_strings.dbf' size 10m EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;
SQL> alter user HR quota unlimited on TEST_STRINGS;我在这个表空间中创建一个表。
SQL> CREATE TABLE HR.ZZTEST_STRINGS(ID VARCHAR2(20 CHAR)) tablespace test_strings;
SQL> select tablespace_name from dba_tables where table_name = 'ZZTEST_STRINGS';
TABLESPACE_NAME
------------------------------
TEST_STRINGS我们使用表的数据文件进入目录。
[oracle@vbgeneric orcl]$ cd /u01/app/oracle/oradata/orcl12c/orcl
[oracle@vbgeneric orcl]$ ls -l
total 2156408
-rw-r----- 1 oracle oinstall 7938048 Sep 16 06:02 APEX_1991375173370654.dbf
-rw-r----- 1 oracle oinstall 2695168 Sep 16 06:02 APEX_1993195660370985.dbf
-rw-r----- 1 oracle oinstall 1247813632 Sep 16 06:02 sysaux01.dbf
-rw-r----- 1 oracle oinstall 367009792 Sep 16 06:02 system01.dbf
-rw-r----- 1 oracle oinstall 67117056 Sep 16 05:57 temp01.dbf
-rw-r----- 1 oracle oinstall 10493952 Sep 16 06:02 test_strings.dbf
-rw-r----- 1 oracle oinstall 482353152 Sep 16 06:02 undotbs01.dbf
-rw-r----- 1 oracle oinstall 81272832 Sep 16 06:02 users01.dbf我创建数据,我可以看到他们与字符串,如果我强制DBWR写它与缓冲缓存的刷新。
SQL> insert into ZZTEST_STRINGS values('TESTZZ01');关于我插入的数据没有什么...
[oracle@vbgeneric orcl]$ strings test_strings.dbf
}|{z
-ORCL12C
TEST_STRINGS如果我刷新缓冲区缓存,那就可以了 (但我不知道什么是AAAAAAAA)。
我如何避免这个问题: 我必须加密我的数据?
SQL> alter system flush BUFFER_CACHE;
[oracle@vbgeneric orcl]$ strings test_strings.dbf
}|{z
-ORCL12C
TEST_STRINGS
AAAAAAAA
TESTZZ01如果我截断我的表,我可以再次读取数据。正常吗?
SQL> truncate table HR.ZZTEST_STRINGS;
SQL> alter system flush BUFFER_CACHE;
[oracle@vbgeneric orcl]$ strings test_strings.dbf
}|{z
-ORCL12C
TEST_STRINGS
AAAAAAAA
TESTZZ01陌生人,我可以在更新后访问数据的历史 :-)
SQL> connect HR/HR@orcl;
我放弃我的表空间和它的数据文件。
SQL> drop tablespace TEST_STRINGS INCLUDING CONTENTS; SQL> ! rm /u01/app/oracle/oradata/orcl12c/orcl/test_strings.dbf
我从一张新表开始。
SQL> CREATE TABLESPACE TEST_STRINGS DATAFILE '/u01/app/oracle/oradata/orcl12c/orcl/test_strings.dbf' size 10m EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;
SQL> CREATE TABLE ZZTEST_STRINGS(ID NUMBER, COMMENT_TEST VARCHAR2(20 CHAR)) tablespace test_strings;
SQL> insert into ZZTEST_STRINGS values(1, 'TEST1');
SQL> insert into ZZTEST_STRINGS values(2, 'TEST2');
SQL> insert into ZZTEST_STRINGS values(3, 'TEST3');
SQL> commit;
SQL> alter system flush BUFFER_CACHE;
[oracle@vbgeneric orcl]$ strings test_strings.dbf
}|{z
-ORCL12C
TEST_STRINGS
AAAAAAAA
TEST3,
TEST2,
TEST1SQL> UPDATE ZZTEST_STRINGS set COMMENT_TEST = 'TEST1_UPDATE' where id = 1;
SQL> commit;
SQL> alter system flush BUFFER_CACHE;我们有新旧价值。
[oracle@vbgeneric orcl]$ strings test_strings.dbf
}|{z
-ORCL12C
TEST_STRINGS
AAAAAAAA
TEST1_UPDATE,
TEST3,
TEST2,
TEST1
祝你愉快,
大卫·杜布瓦
专家解答
这是一个常见的误解-Oracle存储的数据在某种程度上是无法理解的。默认情况下,正如您所发现的,数据只是文件系统上的纯文本。
这就是为什么我们建议 (并且在我们的云产品中是强制性的) 人们使用我们的透明数据加密来加密他们的数据。
这是一个视频演示
这就是为什么我们建议 (并且在我们的云产品中是强制性的) 人们使用我们的透明数据加密来加密他们的数据。
这是一个视频演示
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




