概述
这个是限制所有除DBA权限的用户从指定的IP登录
通过数据库级的trigger能够限制用户从某个IP登录到数据库.
但是这个trigger却有一定的限制如拥用dba权限能绕过这个限制等等.
CREATE OR REPLACE TRIGGER SYS.USER_LOGON AFTER LOGON ON DATABASE
DECLARE
VAR_USER_IP VARCHAR(30);
BEGIN
select SYS_CONTEXT('USERENV','IP_ADDRESS') INTO VAR_USER_IP FROM DUAL;
IF VAR_USER_IP='192.168.0.1' THEN
RAISE_APPLICATION_ERROR(-20000, 'this ip cant logon');
END IF ;
END;
下面这个是可以对具体某个用户从指定的IP登录:
需要在数据库下建表SYSUSER$IP,我建在了SYS方案下
表结构只要USERNAME和IP字段就可以了。
CREATE OR REPLACE TRIGGER SYS.USER_LOGON AFTER LOGON ON DATABASE
DECLARE
VAR_USER_IP VARCHAR(30);
VAR_USER VARCHAR(30);
USERIP VARCHAR(30);
BEGIN
select SYS_CONTEXT('USERENV','IP_ADDRESS') INTO VAR_USER_IP FROM DUAL;
select user INTO VAR_USER FROM DUAL;
select IP INTO USERIP FROM SYS.SYSUSER$IP WHERE USERNAME=VAR_USER;
IF (VAR_USER_IP != USERIP) THEN
RAISE_APPLICATION_ERROR(-20000, 'this ip cant logon');
END IF ;
END;
还有别的需要就自己扩展一下。
跟大家分享一下!
最后
以上就是执着背包为你收集整理的关于数据库中对用户访问数据库的IP限制的全部内容,希望文章能够帮你解决关于数据库中对用户访问数据库的IP限制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复