有A(EDU)、B、C、D(JF)三个schema,现在的问题是A需要可以讲A、B、C三个用户下的对象权限赋予D用户。

比如A需要将A B C三个schema下表的select权限赋给D用户。

 

①EDU拥有

GRANT SELECT ANY TABLE TO EDU WITH ADMIN OPTION

并将select权限分配下去的权限。

然而事实是,当我执行,

GRANT SELECT ON RST.SEARCH_LOG_MONITOR TO JF

却不可以。

 

②进一步显式的特别指定SEARCH_LOG_MONITOR表上的ADMIN OPTION选项

GRANT SELECT ON RST.SEARCH_LOG_MONITOR TO EDU WITH  ADMIN OPTION
然后

GRANT SELECT ON RST.SEARCH_LOG_MONITOR TO JF

就可以了。如果每个表都要显式的指定,还是很麻烦的。

 

那么就有了

③GRANT GRANT ANY OBJECT PRIVILEGE TO EDU

然后管理ABCD下的对象权限问题都可以了。

 

④类似的有:

 ADMINISTER DATABASE TRIGGER

 

⑤解决问题的步骤很简单:

select *
from dict d
where d.table_name like'�A_SYS%'

 

select * from dba_sys_privs D where grantee='DBA'
and (d.PRIVILEGE like'%TABLE%' OR  d.PRIVILEGE like'%OBJECT%')

 

DBA GRANT ANY OBJECT PRIVILEGE YES
-----找到这个 再从官方文档上搜索 并且自己测试。然后就可以了。。

 

posted on 2010-12-30 20:27  维也纳下午茶  阅读(637)  评论(0编辑  收藏  举报