ITPub博客

首页 > 数据库 > Oracle > Oracle 安全加固:如何设置 IP 黑白名单,限制数据库访问?

Oracle 安全加固:如何设置 IP 黑白名单,限制数据库访问?

原创 Oracle 作者:a960549548 时间:2025-09-22 15:37:57 0 删除 编辑

微信公众号:DBA之友


数据库安全是 DBA 工作中的重中之重。除了常规的密码策略和权限管理,限制特定 IP 地址的访问也是一道非常有效的防火墙。今天,我们就来聊聊在 Oracle 中实现 IP 访问控制的两种方法。

方法一:修改 sqlnet.ora 文件

这是最常用也是最直接的方法,通过修改监听配置文件 sqlnet.ora 来实现全局的 IP 地址过滤。这种方法作用于监听层面,能将非法访问直接挡在数据库大门之外。

操作步骤:

  1. 编辑 sqlnet.ora 文件:

    vi $ORACLE_HOME/network/admin/sqlnet.ora
  2. 配置 IP 规则(三选一):

    • 方案 A:白名单模式(推荐)只允许特定 IP 访问,其他全部拒绝。这是最安全的模式。

      # 开启IP校验功能
      tcp.validnode_checking = yes
      # 允许访问的IP地址列表,多个用逗号隔开
      # 也可以配置网段,例如:192.168.1.0/24
      tcp.invited_nodes = (192.168.1.110, 10.10.10.10)

      注意: 使用白名单时,有时需要将数据库服务器本机IP也加进去,否则可能导致监听启动异常。

    • 方案 B:黑名单模式明确禁止某些 IP 访问,其他默认允许。

      # 开启IP校验功能
      tcp.validnode_checking = yes
      # 禁止访问的IP地址列表
      tcp.excluded_nodes = (172.17.15.90, 172.17.15.76)
    • 方案 C:混合模式同时设置白名单和黑名单。一般情况下,只用白名单或只用黑名单就足够了,混合使用容易造成管理混乱。

  3. 重新加载监听配置使其生效:

    lsnrctl reload


方法二:使用登录触发器

如果你的需求更为精细,比如只想限制某些 IP 访问特定的数据库用户(Schema),那么 sqlnet.ora 就显得有点“一刀切”了。这时,登录触发器(LOGON Trigger)就能派上大用场。

操作场景:假设我们不希望 172.17.15.90 和 172.17.15.76 这两个 IP 登录 KINGDEE 这个用户。

操作步骤:

  1. 创建登录触发器:以 sys 或其他有权限的用户登录,执行以下 SQL。

    CREATE OR REPLACE TRIGGER disable_specific_login
        AFTER LOGON ON KINGDEE.SCHEMA -- 注意:这里指定了在哪个用户上生效
    BEGIN
       -- 判断来源IP是否在黑名单列表中
       IF ORA_CLIENT_IP_ADDRESS IN ('172.17.15.90', '172.17.15.76') THEN
         -- 如果是,则抛出异常,阻止登录
         RAISE_APPLICATION_ERROR(-20001, '用户 ' || ORA_LOGIN_USER || ' 不允许从此 IP ' || ORA_CLIENT_IP_ADDRESS || ' 登录!');
       END IF;
    END;
    /


  2. 扩展用法:限制整个网段如果你想限制一个网段,比如 10.10.10.*,可以把 IN 条件改为 LIKE:IF ORA_CLIENT_IP_ADDRESS LIKE ('10.10.10.%') THEN ...


简单来说:

  • 想简单粗暴地把危险 IP 挡在外面,用 sqlnet.ora。

  • 想实现**“某个IP不能登录某个用户”这样的精细化管理,用登录触发器**。

在实际工作中,两者结合使用,效果更佳!


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70013625/viewspace-3096258/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 位图索引的妙用
请登录后发表评论 登录
全部评论
Oracle ACE,MySQL 8.0 OCP,PMP,拥有OceanBase OBCP,TiDB PCTP,GoldenDB GDCP等多项认证,ITPUB认证专家,微信公众号:DBA之友。

注册时间:2022-02-08

  • 博文量
    132
  • 访问量
    171519