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

推荐订阅源

腾讯CDC
N
Netflix TechBlog - Medium
aimingoo的专栏
aimingoo的专栏
P
Proofpoint News Feed
F
Fortinet All Blogs
大猫的无限游戏
大猫的无限游戏
I
InfoQ
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
有赞技术团队
有赞技术团队
G
Google Developers Blog
L
LangChain Blog
博客园_首页
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
月光博客
月光博客
IT之家
IT之家
量子位
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网

博客园 - 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

 非法登陆的错误如下: