Zes*_*sty 5 database security oracle cryptography utl-file
我需要Oracle /安全专家的帮助.
我将在Oracle DB中创建加密/解密函数.我打算dbms_crypto
用AES256
.我知道我应该将密钥文件存储在O/S中并使用它来读取它utl_file
.
这是一个好主意吗?这种方法有什么问题吗?例如,如果密钥文件被函数的10个调用者同时读取,那么utl_file是否会出现问题?还有其他建议吗?
我确信这是一件非常普遍的事情.有谁知道我在哪里可以找到这样做的好样品?
由于这与安全相关,我更愿意遵循其他人遵循的标准.
如果您的 Oracle 数据库企业版中有 Oracle Advanced Security,则您已经对数据库中存储的数据进行了透明数据加密 (TDE)。请看一下:
http://download.oracle.com/docs/cd/B19306_01/network.102/b14268/asotrans.htm
您还可以查看此链接:
http://www.oracle-base.com/articles/10g/TransparentDataEncryption_10gR2.php
总结最后一页:
设置:创建数据库文件和用户。
CONN 系统/密码 AS SYSDBA
创建表空间 tde_test 数据文件 '/u01/oradata/DB10G/tde_test.dbf' 大小 128K 在下一个 64K 上自动扩展;
创建用户测试由测试默认表空间 tde_test 标识;ALTER USER test QUOTA UNLIMITED ON tde_test;授予连接测试;授予创建表进行测试;
加密数据:如何创建加密列。您必须创建一个钱包来保存加密密钥。将以下条目添加到服务器上的 sqlnet.ora 文件中,并确保已创建指定的目录。
ENCRYPTION_WALLET_LOCATION= (SOURCE=(METHOD=FILE)(METHOD_DATA= (DIRECTORY=/u01/app/oracle/admin/DB10G/encryption_wallet/)))
您必须创建并打开钱包:
CONN sys/password AS SYSDBA
ALTER SYSTEM SET ENCRYPTION KEY AUTHENTICATED BY "myPassword";
Run Code Online (Sandbox Code Playgroud)
然后,您可以创建表,其中所需的列已加密或未加密:
CREATE TABLE tde_test (
id NUMBER(10),
data VARCHAR2(50) ENCRYPT
)
TABLESPACE tde_test;
Run Code Online (Sandbox Code Playgroud)
我希望这对你有帮助。