最近ISO20000随着和煦的春风吹遍各家公司,作为传统行业的金融系统自然躲不开这一轮折腾。
在金融系统对数据库安全有着明确的规范,例如:
数据保密性
本项评价指标包括:
——应采用加密或其他有效措施实现系统管理数据、鉴别信息和重要业务数据传输保密性;
——应采用加密或其他保护措施实现系统管理数据、鉴别信息和重要业务数据存储保密性。
这个需求从数据库和应用程序两方面都可以实现,对于数据库运维方面可以使用透明加密的技术来实现。这个技术平时很少用到,下面是根据官方文档中的描述整理出来的步骤,当有业务需求时可以参考。
为了使用透明数据加密,首先指定一个wallet路径并且设置一个秘钥,步骤如下:
1. 在sqlnet.ora文件中指定一个wallet路径
2. 创建主秘钥
3. 开启wallet
4. 创建表空间
下面看具体步骤
1.在$ORACLE_HOME/network/admin路径下编辑sqlnet.ora文件,添加下面的语句,将wallet路径设置到/home/oracle
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(/home/oracle)))
2. 创建主秘钥
ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "oracle";
3. 当数据库关闭时wallet也会随之关闭。在这一步手工开启wallet
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "oracle";
4. 创建加密表空间后,在该表空间中创建的表默认支持加密功能。
CREATE TABLESPACE sec_tbs
DATAFILE '/oradata/sec_tbs01.dbf'
SIZE 100M
ENCRYPTION
DEFAULT SOREAGE(ENCRYPT);
5. 在加密表空间上创建表,不再需要特别指定加密语法
CREATE TABLE sec_tab
(id INT, name VARCHAR2(10))
TABLESPACE sec_tbs;
6. 查看表空间加密方式
SELECT tablespcae_name,status,encrypted
FROM dba_tablespaces
WHERE tablespace_name='SEC_TBS';
这个做法也有个隐患,就是wallet文件。该文件就是密码本,如果丢失了或者损坏了密码本,加密后的数据就无法解密了,所以注意保护好该文件。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29047826/viewspace-1473689/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29047826/viewspace-1473689/