如何查看Oracle AQ用户的所有权限

如何查看Oracle AQ用户的所有权限,oracle,queue,database-administration,oracle-aq,Oracle,Queue,Database Administration,Oracle Aq,我正在尝试设置一个新的数据库用户来收听Oracleq队列中的主题 我有一个多年前设置的老用户,可以读取消息并将消息发送到队列 现在我正在尝试设置一个新用户,但它似乎没有所需的所有授权 查看每个用户的授权差异的最佳方式是什么?我试着比较它们,看看有什么不同 例如,我如何确定这是否已被授予 grant execute on sys.dbms_aqjms to NEWUSER; 您可以使用系统视图检查授予特定用户的权限: USER\u SYS\u PRIVS授予当前用户的系统权限 DBA\u S

我正在尝试设置一个新的数据库用户来收听Oracleq队列中的主题

我有一个多年前设置的老用户,可以读取消息并将消息发送到队列

现在我正在尝试设置一个新用户,但它似乎没有所需的所有授权

查看每个用户的授权差异的最佳方式是什么?我试着比较它们,看看有什么不同

例如,我如何确定这是否已被授予

 grant execute on sys.dbms_aqjms to NEWUSER;

您可以使用系统视图检查授予特定用户的权限:

  • USER\u SYS\u PRIVS
    授予当前用户的系统权限
  • DBA\u SYS\u PRIVS
    授予用户和角色的系统权限
  • USER\u TAB\u PRIVS
    -授予用户作为授予人、受让人或所有者的对象
  • ALL\u TAB\u PRIVS
    -对用户是授予人、被授予人、所有者或启用角色或
    PUBLIC
    是被授予人的对象进行授予
  • DBA\u TAB\u PRIVS
    -授予数据库中所有对象的权限
  • DBA\u角色数据库中存在的所有角色
  • DBA\u ROLE\u PRIVS
    授予用户和角色的角色
  • DBA\u SYS\u PRIVS
    授予用户和角色的系统权限
  • DBA\u TAB\u PRIVS
    -向用户和角色授予对象上的所有授权
  • ROLE\u ROLE\u priv
    -授予角色的角色
  • ROLE\u SYS\u PRIVS
    授予角色的系统权限
  • ROLE\u TAB\u PRIVS
    授予角色的表权限
例如,要检查一个用户拥有哪些系统特权而另一个用户没有被授予,反之亦然,您可以使用(您必须以
SYS
user的身份运行它):

输出:

DESCRIPTION ORD ------------------------------------------------------------ ---------- System privileges granted to user1 which user2 does not have 1 CREATE VIEW 2 System privileges granted to user2 which user1 does not have 3 CREATE TABLE 4 GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY --------- ------ ----------- -------- ---------- --------- --------- USER1 SYS DBMS_AQJMS SYS EXECUTE NO NO 输出:

DESCRIPTION ORD ------------------------------------------------------------ ---------- System privileges granted to user1 which user2 does not have 1 CREATE VIEW 2 System privileges granted to user2 which user1 does not have 3 CREATE TABLE 4 GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY --------- ------ ----------- -------- ---------- --------- --------- USER1 SYS DBMS_AQJMS SYS EXECUTE NO NO 受让人所有者表\名称授予人权限可授予层次结构 --------- ------ ----------- -------- ---------- --------- --------- USER1系统DBMS_AQJMS系统执行否否 如果您没有访问
SYS
user的权限,可以查询系统表的
user\uu
版本,以检查您当前登录的用户拥有的权限。然后,您可以将结果与其他用户的权限进行比较

您已经考虑到,该用户可能被授予角色,并且该角色可能被授予角色,因此您还必须比较授予每个用户的角色