ORACLE USERENV函数返回关于当前会话的信息。此信息可以用于编写一个应用程序特定的审计跟踪表或确定特定于语言的角色目前使用的会话。
参数 | 功能 |
---|---|
CLINET_INFO | 返回最高可达64个字节存储的用户会话信息,可由应用程序使用DBMS_APPLICATION_INFO包。 |
ENTRYID | 返回当前审计条目编号。审计的EntryID序列细粒度的审计记录和定期审计记录之间共享。在分布式SQL语句不能使用这个属性。 |
ISDBA | 如果用户已经被认证为dba;或者是通过操作系统或口令文件具有DBA特权的,返回“TRUE",否则返回"FALSE" |
LANG | 返回ISO缩写语言名称,一个比现有的“语言”参数较短的形式 |
LNAGUAGE | 返回数据库当前会话的语言、地域和字符集 |
SESSIONID | 返回审计会话标识符。在分布式SQL语句不能指定此参数 |
SID | 返回数据库会话ID |
TERMINA | 返回当前会话的终端操作系统的标识符。在分布式SQL语句,此参数返回了标识符为本地会话。在分布式环境中,此参数只支持远程SELECT语句,不用于远程INSERT,UPDATE或DELETE操作。 |
Oracle中userenv函数有两种用法:
- select userenv(‘isdba’) from dual;
- select SYS_CONTEXT('USERENV','ISDBA') isdba from dual;
达梦数据库中同样支持userenv函数获取当前会话的上下文信息,用法稍微有一些区别,达梦中只支持第二种用法:
select SYS_CONTEXT('USERENV','ISDBA') isdba from dual;
select userenv(‘isdba’) from dual; --这种用法不支持
达梦数据库中userenv属性和oracle也有一些不同的地方,大家根据需要对号入座即可:
参数 | 功能 |
---|---|
CURRENT_SCHEMA | 返回当前模式名 |
CURRENT_SCHEMAID | 返回当前模式 ID |
CURRENT_USER | 返回当前的用户名 |
CURRENT_USERID | 返回当前的用户 ID |
DB_NAME | 返回数据名 |
HOST | 返回客户端的主库名 |
INSTANCE_NAME | 返回实例名 |
IP_ADDRESS | 返回客户端的 IP 地址 |
ISDBA | 如果当前会话用户拥有 DBA 权限,则返回 TRUE,否则,返回FALSE |
LANG | 语言包简写,中文返回―CN‖,英文返回―EN‖ |
LANGUAGE | 语言包,返回库的编码方式 |
NETWORK_PROTOCOL | 通信协议 |
SERVER_HOST | 实例运行的主机名 |
SESSION_USER | 会话的用户名 |
SESSION_USERID | 会话的用户 ID |
SID | 当前会话的 ID |
更多资讯请上达梦技术社区了解: https://eco.dameng.com