在Oracle数据库中,以下内容之间存在以下差异:
这些也可能是"当前用户"的相关值吗?
我特别感兴趣的是哪些可以更改,哪些可以更改它们,哪些不能更改值,哪些具有基于连接类型的不同值,以及哪些(始终)是用于登录到数据库.
在我的大多数测试中,值总是相同的.唯一的例外是运行以下内容以更改'CURRENT_SCHEMA'时:
alter session set current_schema=<SCHEMA>
Run Code Online (Sandbox Code Playgroud)
执行以下操作会导致错误:
alter session set current_user=<USER> --even as sys/system, which is good I suppose
Run Code Online (Sandbox Code Playgroud)
因此,所有这些都有某种安全/规则.但是,拥有SESSION_USER和CURRENT_USER背后一定有一些原因.我还假设user()可以是sys_context的快捷方式('USERENV','CURRENT_USER'),但我找不到有关此问题的文档.