如何显示数据库的特定用户

时间:2012-12-04 15:57:13

标签: oracle oracle10g sqlplus

如何在控制台上使用sql * plus在oracle 10g上显示数据库的特定用户名? 我一直在寻找下列表v$databaseall_usersdba_usersv$session的链接列。

3 个答案:

答案 0 :(得分:1)

要查询数据库中定义的用户,可以使用all_users视图。例如,要选择以aA开头的所有用户,请使用

SELECT * 
FROM all_users 
WHERE NLS_UPPER(username) LIKE 'A%';

要查询特定用户的当前会话,您可以使用v$session视图。例如,要选择为以aA开头的用户建立的所有当前会话,请使用

SELECT * 
FROM v$session
WHERE NLS_UPPER(username) LIKE 'A%';

答案 1 :(得分:0)

select username from all_users;

or

select username from all_users where ...;

有3种不同的视图集ALL_,DBA_和USER_。

ALL_ views显示当前用户可访问的所有信息,即它可以查看用户有权访问的所有shcema,DBA_视图显示整个数据库的infor,仅供管理员使用。然后USER_视图显示当前用户架构的信息。

听起来你需要ALL_USERS

答案 2 :(得分:0)

要链接V $ SESSION和DBA_USERS,请使用两个视图中的“Usernanme”列。它将返回用户会话的详细信息。

选择D.USERNAME,D.USER_ID,V.SID,V.STATUS 来自v $ session v,dba_users d 其中V.USERNAME = D.USERNAME;

如果您还需要有关为后台进程创建的会话的详细信息,请通过V $ SESSION中的“User#”和来自DBA_USERS的“User_ID”进行加入。

选择D.USERNAME,D.USER_ID,V.SID,V.STATUS 来自v $ session v,dba_users d 其中V.USER#= D.USER_ID;