【Oracle】数据库ip黑名单


一、创建ip黑名单表

CREATE TABLE tzq.ON_NOLOGON_TABLE
   ( "COMPANY" VARCHAR2(20),
        "IP_ADDRESS" VARCHAR2(30),
        "APP_NAME" VARCHAR2(300)
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT);

insert into tzq.ON_NOLOGON_TABLE values ('黑客帝国','127.0.0.1','tzq');

SELECT * FROM ON_NOLOGON_TABLE;

二、创建触发器,登录数据库的时候触发

CREATE OR REPLACE TRIGGER tzq.check_black_list
  AFTER logon ON DATABASE ----事后触发器
DECLARE
  client_ip VARCHAR2(20);
  v_count   VARCHAR2(100);
BEGIN
  dbms_application_info.set_client_info('logon ' ||
                                        sys_context('userenv'
                                                   ,'ip_address')); ----获取客户端信息
  SELECT sys_context('userenv'
                    ,'ip_address')
    INTO client_ip
    FROM dual;
  ----判断ip是否在黑名单上
  SELECT COUNT(1)
    INTO v_count
    FROM on_nologon_table
   WHERE ip_address = client_ip;
  IF v_count > 0 THEN
    raise_application_error(-20000
                           ,'该ip已被列入黑名单');
  END IF;
END;
/

ALTER TRIGGER tzq.CHECK_BLACK_LIST ENABLE; ---启动触发器
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tzq@2018

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值