【问题标题】:list user who have root (administrative) privilege列出具有 root(管理)权限的用户
【发布时间】:2011-03-18 19:37:19
【问题描述】:

我想知道在 Oracle 中拥有 root(管理)权限的所有用户的列表。 我想在脚本或 C++ 应用程序中使用它。首选脚本。

【问题讨论】:

  • 询问如何做某事与询问某事不同。

标签: oracle database-administration


【解决方案1】:

Oracle 中的“root”或“adminstrative”权限到底是什么意思?您希望用户授予 SYSDBA 吗?或者,在较早的 Oracle 版本中,有 DBA 角色,它具有广泛的权限集,使用户能够执行大多数操作。它在 11g 中具有一组减少的功能。 @client09 给出的答案对于准确识别每个用户可以做什么很有价值。

对我来说,Oracle 中的 root 用户是 SYSDBA 帐户,默认情况下是 SYS 用户。任何被授予此权限的人都可以登录“AS SYSDBA”,这使该用户可以完全控制数据库。您可以通过此选择列出授予此权限的用户:

SELECT * FROM v$pwfile_users;

有趣的是,如果我被授予 SYSDBA 角色,并且我以 sysdba 身份登录,那么 Oracle 会话中的实际用户是 SYS:

SQL> create user test identified by test;

User created.

SQL> grant create session to test;

Grant succeeded.

SQL> grant sysdba to test;

Grant succeeded.

SQL> connect test/test as sysdba
Connected.
SQL> select user from dual;

USER
------------------------------
SYS

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  FALSE
TEST                           TRUE  FALSE FALSE

【讨论】:

    【解决方案2】:

    以下是您如何找到您的用户的权限:

    select
      lpad(' ', 2*level) || granted_role "User, his roles and privileges"
    from
      (
      /* THE USERS */
        select 
          null     grantee, 
          username granted_role
        from 
          dba_users
      /* THE ROLES TO ROLES RELATIONS */ 
      union
        select 
          grantee,
          granted_role
        from
          dba_role_privs
      /* THE ROLES TO PRIVILEGE RELATIONS */ 
      union
        select
          grantee,
          privilege
        from
          dba_sys_privs
      )
    start with grantee is null
    connect by grantee = prior granted_role;
    

    这将显示哪些用户拥有夸大的权限。您可以通过键入在 shell 脚本中执行此操作

    sqlplus / as sysdba --(if you are root on the box)
    spool user_privileges.txt
    @whos_a_root.sql --(if that's what you call your script)
    spool off
    exit;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      相关资源
      最近更新 更多