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

Cra*_*zyC 4 oracle database-administration

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

DCo*_*kie 5

Oracle的"root"或"adminstrative"特权究竟是什么意思?您想要用户授予SYSDBA吗?或者,在较旧的Oracle版本中,存在DBA角色,该角色具有一组广泛的权限,使用户能够执行大部分操作.它在11g中具有减少的功能集.@ client09给出的答案对于准确识别每个用户可以做什么很有价值.

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

SELECT * FROM v$pwfile_users;
Run Code Online (Sandbox Code Playgroud)

有趣的是,如果我被授予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
Run Code Online (Sandbox Code Playgroud)