如何在控制台上使用sql * plus在oracle 10g上显示数据库的特定用户名?
我一直在寻找下列表v$database
,all_users
,dba_users
,v$session
的链接列。
答案 0 :(得分:1)
要查询数据库中定义的用户,可以使用all_users
视图。例如,要选择以a
或A
开头的所有用户,请使用
SELECT *
FROM all_users
WHERE NLS_UPPER(username) LIKE 'A%';
要查询特定用户的当前会话,您可以使用v$session
视图。例如,要选择为以a
或A
开头的用户建立的所有当前会话,请使用
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;