准备用于加密的数据库在$ORACLE_HOME/network/admin中的sqlnet.ora中增加一个ENCRYPTED_WALLET_LOCATION条目。 ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/u01/oracle/product/11.2.0.1.0/wallet/))) 进入数据库执行以下语句 alter system set key identified by "welcome" 如果提示以下错误,表示wallet没有被自动创建出来,可能是因为wallet目录需要手工创建的原因 ORA-28368: cannot auto-create wallet
手工创建wallet目录,并授予oracle用户访问权限。 alter system set key identified by "welcome"; SQL> conn hr/hr SQL> create table test (id number,credit_card_number varchar2(16) ENCRYPT NO SALT); SQL> insert into test values(1,"12312432"); 1 row created. SQL> insert into test values(2,"33245235"); SQL> commit; Commit complete. SQL> select * from test;这个时候是可以看到被加密的数据的,当重启后再次查询加密数据就无法看到了。这个时候需要打开wallet才可以查看加密数据 alter system set wallet open identified by "welcome1"; sys用户的表不能被加密更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址