暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 关于系统 _ 上下文

ASKTOM 2020-07-21
257

问题描述

我以具有SYS特权的用户身份登录,并在sql下方运行以检查一些会话变量,到目前为止,一切看起来都不错且令人期待。

select substr(user,1,5) as "user", substr(sys_context('USERENV','SESSION_USER'),1,5) as SESSION_USER, substr(sys_context('USERENV','CURRENT_SCHEMA'),1,5) as CURRENT_SCHEMA
        , substr(sys_context('USERENV','CURRENT_USER'),1,5) as CURRENT_USER, sys_context('USERENV','CURRENT_SCHEMAID') as CURRENT_SCHEMAID
from dual;

user  SESSI CURRE CURRE CURRENT_SCHEMAID                                                                                                                                                                                                                                                
----- ----- ----- ----- -----------------
SYS   SYS   SYS   SYS   0                                                                                                                                                                                                                                                               

复制



现在以不同的用户身份连接并运行相同的SQL,它仍然显示SYS,我希望看到tst这是预期的吗?

conn tst/tst


select substr(user,1,5) as "user", substr(sys_context('USERENV','SESSION_USER'),1,5) as SESSION_USER, substr(sys_context('USERENV','CURRENT_SCHEMA'),1,5) as CURRENT_SCHEMA
        , substr(sys_context('USERENV','CURRENT_USER'),1,5) as CURRENT_USER, sys_context('USERENV','CURRENT_SCHEMAID') as CURRENT_SCHEMAID
from dual;

user  SESSI CURRE CURRE CURRENT_SCHEMAID                                                                                                                                                                                                                                                
----- ----- ----- ----- -----------------
SYS   SYS   SYS   SYS   0 

复制


提前感谢您的时间。

专家解答

抱歉,我不能复制

SQL> select substr(user,1,5) as "user",
  2         substr(sys_context('USERENV','SESSION_USER'),1,5) as SESSION_USER,
  3         substr(sys_context('USERENV','CURRENT_SCHEMA'),1,5) as CURRENT_SCHEMA ,
  4         substr(sys_context('USERENV','CURRENT_USER'),1,5) as CURRENT_USER,
  5         sys_context('USERENV','CURRENT_SCHEMAID') as CURRENT_SCHEMAID
  6  from dual;

user                 SESSION_USER         CURRENT_SCHEMA       CURRENT_USER         CURRENT_SCHEMAID
-------------------- -------------------- -------------------- -------------------- --------------------
SYS                  SYS                  SYS                  SYS                  0

SQL> conn scott/tiger
Connected.
SQL> select substr(user,1,5) as "user",
  2         substr(sys_context('USERENV','SESSION_USER'),1,5) as SESSION_USER,
  3         substr(sys_context('USERENV','CURRENT_SCHEMA'),1,5) as CURRENT_SCHEMA ,
  4         substr(sys_context('USERENV','CURRENT_USER'),1,5) as CURRENT_USER,
  5         sys_context('USERENV','CURRENT_SCHEMAID') as CURRENT_SCHEMAID
  6  from dual;

user                 SESSION_USER         CURRENT_SCHEMA       CURRENT_USER         CURRENT_SCHEMAID
-------------------- -------------------- -------------------- -------------------- --------------------
SCOTT                SCOTT                SCOTT                SCOTT                127
复制


请像我们一样将您从SQL Plus的输出发送给我们。

是 “TST” 被授予SYSDBA你会看到这一点,但否则不会。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论