Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 列出具有root(管理)权限的用户_Oracle_Database Administration - Fatal编程技术网

Oracle 列出具有root(管理)权限的用户

Oracle 列出具有root(管理)权限的用户,oracle,database-administration,Oracle,Database Administration,我想知道在Oracle中拥有root(管理)权限的所有用户的列表。 我希望它在脚本或C++应用程序中。首选脚本。以下是如何找到用户的权限: select lpad(' ', 2*level) || granted_role "User, his roles and privileges" from ( /* THE USERS */ select null grantee, username granted_role from

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

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

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;

在Oracle中,“root”或“administrative”特权到底是什么意思?您希望用户被授予SYSDBA吗?或者,在较旧的Oracle版本中,有一个DBA角色,该角色拥有一组广泛的权限,用户可以执行大部分操作。它在11g中具有一组精简的功能。@client09给出的答案对于准确确定每个用户可以做什么很有价值

对我来说,Oracle中的root用户是SYSDBA帐户,默认情况下是SYS用户。任何被授予此权限的人都可以“作为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
询问如何做某事与询问某事不同。