重庆思庄Oracle、Redhat认证学习论坛

标题: oracle--用户权限查询 [打印本页]

作者: jiawang    时间: 2023-7-24 13:31
标题: oracle--用户权限查询
Oracle数据库中有两种类型的用户权限:系统权限和对象权限。

1. 系统权限:
        系统权限是指对整个数据库的访问权限,包括创建、删除、修改数据库对象、执行特定操作等。Oracle提供了一系列的系统权限,例如CREATE SESSION、CREATE TABLE、CREATE VIEW等。

2. 对象权限:
        对象权限是指对特定数据库对象的访问权限,包括对表的读取、插入、更新、删除等操作。Oracle提供了多种对象权限,例如SELECT、INSERT、UPDATE、DELETE等。

        在Oracle中,用户要访问数据库,必须拥有相应的权限。对于系统权限,只有具有超级用户或者拥有相应授权的用户才能授予其他用户。对于对象权限,只有拥有该对象的创建权限或者拥有对象所有权的用户才能授予其他用户。通过合理地分配权限,可以保证数据库的安全性和稳定性。

以下是用户权限的查询脚本:
用户对象权限:

    SELECT *
      FROM DBA_TAB_PRIVS
     WHERE GRANTEE = 'USERNAME'
    UNION ALL
    SELECT *
      FROM DBA_TAB_PRIVS
     WHERE GRANTEE IN
           (SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'USERNAME');

用户系统权限:

    SELECT *
    FROM DBA_SYS_PRIVS
    WHERE GRANTEE = 'USERNAME'
    UNION ALL
    SELECT *
    FROM DBA_SYS_PRIVS
    WHERE GRANTEE IN
         (SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'USERNAME');

         oracle角色可以理解为各种用户权限或系统权限的集合,可以将以上两个脚本中的username替换为rolename进行角色的对象权限或系统权限的查询。







欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2