Oracle 中的Userenv() 达梦中如何处理?

本文介绍了Oracle中的USERENV函数,包括其参数和功能,如会话信息、DBA权限检查等。同时,对比了达梦数据库中USERENV函数的使用和不同之处,如CURRENT_SCHEMA、NETWORK_PROTOCOL等属性。了解这些信息对于数据库管理和审计跟踪至关重要。在达梦中,只支持SYS_CONTEXT方式来获取ISDBA等属性。
摘要由CSDN通过智能技术生成

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函数有两种用法:

  1. select userenv(‘isdba’) from dual;
  2. 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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值