oracle的一些技巧技巧
获取Oracle当前会话的一些属性(这对SQL注入的环境判断非常有用)
该sys_context函数返回与上下文命名空间关联的属性值。此功能可用于SQL和PL / SQL语句。
注:sys_context返回用户会话的属性,所以你不能用它在并行查询或实时应用集群环境。
名称空间和变量,你可以把它定义为一个常量字符串,或者你可以定义一个变量代替命名空间或属性的字符串。命名空间必须在数据库中定义,以及相关的参数值被分配到dbms_session。命名空间必须是一个合法的SQL标识符变量名即可。是任意的字符串。他们不区分案例和案例,但它们不能超过30字节的长度。
数据类型的函数返回的是空的,与回归价值最大默认长度为256字节。你也可以通过设置功能参数长度修改默认长度。价值的合法的长度范围是1到4000个字节。如果指定的值不在这个范围内,Oracle将使用默认的长度。)
Oracle9i提供了一个内置的Userenv命名空间代表当前会话的信息。命名空间中的预定义的参数如表1和表的最后一列确定返回值的长度。
Grammar:
sys_context(命名空间、属性{ },长度)
实例uff1a
选择sys_context('userenv,终端)终端,
sys_context('userenv ','language)的语言,
sys_context('userenv ','sessionid SessionID的),
sys_context('userenv ','instance)实例,
sys_context('userenv ','entryid)项标识,
sys_context('userenv ','isdba)isdba,
sys_context('userenv ','nls_territory)nls_territory,
sys_context('userenv ','nls_currency)nls_currency,
sys_context('userenv ','nls_calendar)nls_calendar,
sys_context('userenv ','nls_date_format)nls_date_format,
sys_context('userenv ','nls_date_language)nls_date_language,
sys_context('userenv ','nls_sort)nls_sort,
sys_context('userenv ','current_user)current_user,
sys_context('userenv ','current_userid)current_userid,
sys_context('userenv ','session_user)session_user,
sys_context('userenv ','session_userid)session_userid,
sys_context('userenv ','proxy_user)proxy_user,
sys_context('userenv ','proxy_userid)proxy_userid,
sys_context('userenv ','db_domain)db_domain,
sys_context('userenv ','db_name)db_name,
sys_context('userenv ','host)主机,
sys_context('userenv ','os_user)os_user,
sys_context('userenv ','external_name)external_name,
sys_context('userenv ','ip_address)ip_address,
sys_context('userenv ','network_protocol)network_protocol,
sys_context('userenv ','bg_job_id)bg_job_id,
sys_context('userenv ','fg_job_id)fg_job_id,
sys_context('userenv ','authentication_type)authentication_type,
sys_context('userenv ','authentication_data)authentication_data
从双;
下面的语句返回登录用户的名称:
连接OE/OE
选择sys_context('userenv ','session_user)
从双;
sys_context('userenv ','session_user)
在线搜索
{代码} authentication_data
用于对登录用户进行身份验证的数据。对于x.503证书,,的。
二百五十六
注意:你可以改变的authentication_data属性,返回值,4000
authentication_type
如何对用户进行身份验证:
数据库:用户名/密码验证
操作系统外部用户身份验证
网络:网络协议或与认证
代理:OCI代理连接认证
三十
bg_job_id
当前会话的工作ID,如果它是由
三十
client_info
返回可以存储的64字节用户会话信息。
六十四
current_schema
当前模式中使用的默认模式的名称。
三十
current_schemaid
当前会话中使用的默认模式的标识符。
三十
current_user
当前会话权限下的用户的名称。
三十
current_userid
当前会话权限下的用户的用户ID
三十
db_domain
数据库领域中的在db_domain初始化参数指定。
二百五十六
db_name
数据库的名称在db_name初始化参数指定
三十
项标识
可用的审计条目标识符。您不能在该选项中使用此选项,它也被称为正确和错误。
三十
external_name
数据库用户的外部名称。对于经过身份验证的SSL认证会话,用户…
二百五十六
fg_job_id
当前会话的工作ID,如果它是由
三十
主机
客户端连接的主机的名称。
五十四
实例
当前实例的实例标识号。
三十
ip_address
客户端连接的机器的IP地址。
三十
isdba
如果您当前启用了DBA角色,并且false为false,则为true。
三十
郎
语言名称的iso缩写,比
六十二
语言
会话中当前使用的语言和区域,以及
language_territory.characterset
五十二
network_protocol
网络协议被用于通信,如the'protocol = protocol'portion指定
二百五十六
nls_calendar
本届会议的现行日历。
六十二
nls_currency
本届会议的货币。
六十二
nls_date_format
会话的日期格式。
六十二
nls_date_language
用来表示日期的语言。
六十二
nls_sort
二元或语言排序基础。
六十二
nls_territory
本届会议的领土。
六十二
os_user
启动数据库会话的客户端进程的操作系统用户名
三十
proxy_user
代表当前打开当前会话的数据库用户的名称
三十
proxy_userid
代表当前打开当前会话的数据库用户的标识符
三十
session_user
当前用户身份验证的数据库用户名。这个值
三十
session_userid
当前用户所使用的数据库用户名的标识符
三十
SessionID
审核会话标识符。在分布式SQL中不能使用此选项
三十
终端
当前会话客户机的操作系统标识符。在分布式SQL语句中,此选项返回本地会话的标识符。在分布式环境中,只支持远程选择语句,而不支持远程、插入、更新或删除操作。(这个参数的返回长度可能因操作系统而异)。