如何将一个用户下所有函数的执行权限赋予另外一个用户

在网上查了,grant execute on functionname to  user 是将一个函数执行权限赋予一个用户,但是这种方法不实用,一是只能一个一个授权,另外一个是新增函数又要再次授权。有一个简便的方法吗?
标签: 暂无标签
bayannur

写了 8 篇文章,拥有财富 110,被 2 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

P3 | 发表于 2011-2-15 18:46:08

SELECT   'grant execute on ' || owner || '.' || object_name || ' to 目标用户  ;'
  FROM   dba_objects
WHERE   owner = UPPER ('源用户')
         AND object_type IN
                  (UPPER ('package'),
                   UPPER ('type'),
                   UPPER ('PROCEDURE'),
                   UPPER ('FUNCTION'));

用DBA用户执行结果
回复

使用道具

P4 | 发表于 2011-2-15 19:26:00
回复 kimm_yong 的帖子

这个方法我想过,但是如果有新的function又要赋值。能一次解决吗?
回复

使用道具

P4 | 发表于 2011-2-16 08:15:59
没有很好的办法,因为这正是ORACLE的安全原则:最小权限原则。
当然,你可以授予那个用户execute any package, procedure等的权限,但是明显不符合你的要求。
回复

使用道具

P4 | 发表于 2011-2-16 09:45:51
回复 kevin.zhang 的帖子

为什么表、存储过程、包都能用any,function反而不能呢。奇怪啊
谢谢你!
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈