在Oracle 10g中,如何列出模式对象以及我可以授予它们的权限?

时间:2011-04-25 22:21:08

标签: sql oracle oracle10g

使用SQL,我想创建一个某些模式对象的列表(其中3-4个,表和视图)以及我可以授予它们作为SYS用户的权限,或者我可能以其他身份登录的任何其他用户

2 个答案:

答案 0 :(得分:2)

以下是可用于不同类型的架构对象的预定义Oracle Object权限的列表。 http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9013.htm#i2077938

为了让用户将对象权限(上面提到的任何一个预定义对象权限)授予其他用户,用户必须是该对象的所有者,或者该用户必须已被授予对象权限WITH GRANT选项。否则,必须为用户授予“GRANT ANY OBJECT PRIVILEGE”系统权限。

假设用户U1登录时

1)获取用户拥有的可以授予其他用户的对象列表

SELECT object_name FROM user_objects;

2)获取给予用户U1的对象授权列表,可以由U1授予其他用户。

SELECT grantor, grantee, table_name, owner 
  FROM user_tab_privs 
 WHERE grantee = 'U1' and grantable = 'YES'

3)要查看U1是否具有GRANT ANY OBJECT PRIVILEGE,请查询

SELECT * FROM user_sys_privs where privilege = 'GRANT ANY OBJECT PRIVILEGE';

答案 1 :(得分:0)

sys可以授予任何东西。

并且对象本身将来自一个或多个oracle数据字典对象。