惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
小众软件
小众软件
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
Jina AI
Jina AI
博客园 - 【当耐特】
V
Visual Studio Blog
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
量子位
IT之家
IT之家
G
Google Developers Blog
V
V2EX
The GitHub Blog
The GitHub Blog
月光博客
月光博客
GbyAI
GbyAI

博客园 - woody.wu

开发我的第一个openclaw插件,接入本地查询客户信息的api接口。 在Ubuntu 24.04中安装openclaw全过程 配置qwen-code实现AI智能体编程,从此轻松让AI帮你写代码 使用spire.pdf绘制表格,当表格的内容超过一定长度会触发Index and length must refer to a location within the string AI写代码-window11安装claude code,以及在vs code中使用插件。 sqlserver 日志空间太满,导致磁盘空间不够的处理 在c#中利用MagickImage来实现图片的留白清除功能 利用扣子创建AI智能体大合集,智能体中包含有调用外部接口、意图识别、图片生成、大模型调用等 .NET8作为VUE打包项目宿主部署的配置 myql 8.0 安装随笔 SkiaSharp 在 Linux 上依赖一些系统级的库,需要确保这些库已经安装 2024 年年终总结 Quartz.NET学习笔记四->批量处理JOB 不同的JOB不同的时间执行不同的事情 真正实现可以编辑选择的下拉框--jquery 实现 jquery 实现图片轮换功能 - woody.wu - 博客园 在SQL Navigator 中做 oracle pl/sql SQL分析 [instant message]用asp.net+ jquery实现comet即时消息机制 ORACLE DBA学习笔记--管理归档日志文件 [简单分页]C#+JQUERY+ORACLE分页效果
ORACLE DBA学习笔记--使用LOGON TRIGGER限制用户登陆
woody.wu · 2009-08-23 · via 博客园 - woody.wu

 通过TRIGGER 限制用户登陆时的IP地址,应用程序.加强对ORACLE用户的操作审计.

CREATE OR REPLACE TRIGGER trg_work_log 
AFTER LOGON 
ON DATABASE
 
declare
 v_program_name 
varchar2(200);
 v_username 
varchar2(100);
 v_ip_address 
varchar2(18);
 v_error 
varchar2(1000);
 
begin
 
--获取当前的连接用户信息 
select username,program,SYS_CONTEXT('USERENV','IP_ADDRESS')   
into v_username,v_program_name,v_ip_address
from v$session where AUDSID = SYS_CONTEXT('USERENV''SESSIONID');if upper(v_username)='WOODY' then
  
if UPPER(v_program_name)<>'SQLNAV4.EXE' then
     
if v_ip_address <> ('192.168.1.101'then
       RAISE_APPLICATION_ERROR(
-20003,'You are not allowed to connect to the database');
    
end if;
  
ELSE
     RAISE_APPLICATION_ERROR(
-20003,'不能使用SQL Nav4.exe程序登陆');
  
end if;
 
else
   RAISE_APPLICATION_ERROR(
-20003,'You are not allowed to connect to the database');
 
end if;
 
END;

也可以根据需要加入其他的一些限制.
非DBA权限可以通过SYS_CONTEXT函数获取当前V$SESSION的会话信息.
SYS_CONTEXT函数的用法:SYS_CONTEXT('namespace', 'parameter' [, length ]);
通过以下语句可以查看V$SESSION部分信息.

select 
SYS_CONTEXT(
'USERENV','LANGUAGE') language, 
SYS_CONTEXT(
'USERENV','SESSIONID') sessionid, 
SYS_CONTEXT(
'USERENV','INSTANCE') instance, 
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','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','HOST') 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
from dual

 非法登陆的错误如下: