论坛首页 移动开发技术论坛

在存储过程中获取当前用户信息

浏览 1304 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2019-08-26  

1. 使用login_user函数
2. 查询 v$session表

sql>connect / as sysdba
sql>grant select on v_$session to &user_name;
其实这个地方你只需要用
sql>select user to xxx from dual即可
user函数返回当前连接的用户。

可以使用sys_context获取当前登录用户的各种信息


代码:
  1 declare
  2 v_session_user varchar2(200);
  3 v_session_user_id varchar2(20);
  4 os_user varchar2(20);
  5 v_ip_address varchar2(20);
  6 begin
  7 v_session_user := sys_context('USERENV','SESSION_USER');
  8 v_session_user_id := sys_context('USERENV','SESSION_USERID');
  9 os_user := sys_context('USERENV','OS_USER');
10 v_ip_address := sys_context('USERENV','IP_ADDRESS');
11 dbms_output.put_line(v_session_user);
12 dbms_output.put_line(v_session_user_id);
13 dbms_output.put_line(os_user);
14 dbms_output.put_line(v_ip_address);
15* end;
SQL> /

SQL> connect databak/databak@anal
Connected.
SQL> @aaa.sql

PL/SQL procedure successfully completed.

SQL> set serveroutput on
SQL> /

品牌网站可以帮助企业提高品牌形象

论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics