服务器 频道

加密存储过程,授于其它用户执行

  【IT168 服务器学院】随着社会的分工与合作越来越密切,同一台服务器里可能会运行几家公司不同的服务产品,有时候服务之间需要互相提供数据,以实现经济上的双赢;当然各自的安全和独立性也需要保证。
  
  如果这样的服务后台用的是ORACLE数据库,可以用加密存储过程,并授于其它用户执行的方法。
  
  首先我们要为提供的数据写一个正确合乎逻辑的存储过程或函数test_proc,假设源代码是test.sql。
  
  然后用wrap实用工具(默认的目录$ORACLE_HOME/bin)加密它:
  
  使用wrap的语法是:
  
  $wrap iname = input_file     [oname=output_file]
  ↑             ↑
  加密前存储过程或函数 加密后存储过程或函数,默认的后缀为*.plb
  
  举例: $wrap iname=test.sql
  
  会在当前目录产生test.plb加密的存储过程或函数
  
  备注: Windows和unix平台的下wrap生成*.plb加密文件可以通用,版本是向上兼容的。
  
  最后编译这个加密后的test.plb
  
  SQL> @/tmp/test.plb
  
  并赋于相关合作用户(another_user)执行的权限
  
  SQL> grant execute on test_proc to another_user;
  
  其它的注意事项:
  
  合作用户不能有过多的权限, 使他们不能查数据字典和其它用户下的表,密码要起得难一些。
0
相关文章