【问题标题】:How to whitelist ip address to access oracle database如何将ip地址列入白名单以访问oracle数据库
【发布时间】:2021-08-08 13:59:51
【问题描述】:

我是 Oracle 数据库的新手。我在 linux 平台上托管的 12c 版本的 oracle 数据库上工作。我必须将 IP 地址列表列入白名单才能访问 oracle 数据库。

示例:以下是服务器详细信息,我需要添加我的 ipaddress 以连接到数据库

(PROTOCOL = TCP)(HOST = 192.168.56.122) (PORT = 1521)


kishan 192.108.10.132 xyz@gmail.com  

我已经浏览了这些文件,但并没有多大帮助。任何帮助将不胜感激!

https://docs.oracle.com/en/cloud/paas/casb-cloud/palug/putting-ip-addresses-blacklists-or-whitelists.html#GUID-17060E3D-D8B6-41F1-AAEB-9CC3F4D7B670

https://docs.oracle.com/en/cloud/paas/exadata-express-cloud/csdbp/configure-ip-whitelist-policy.html

【问题讨论】:

    标签: database oracle security networking whitelist


    【解决方案1】:

    您似乎正在寻找 ACL(访问控制列表)。这是一个例子:

    创建 ACL:

    BEGIN
       DBMS_NETWORK_ACL_ADMIN.create_acl (
          acl          => 'kishan.xml',
          description  => 'HTTP Access',
          principal    => 'KISHAN',        -- user in your database
          is_grant     => TRUE,
          privilege    => 'connect',
          start_date   => NULL,
          end_date     => NULL);
    END;
    /
    

    分配 ACL:

    BEGIN
       DBMS_NETWORK_ACL_ADMIN.assign_acl (acl         => 'kishan.xml',
                                          HOST        => '192.108.10.132',
                                          lower_port  => NULL,
                                          upper_port  => NULL);
    END;
    /
    

    添加权限

    BEGIN
       -- TRAFOGLED
       DBMS_NETWORK_ACL_ADMIN.add_privilege (acl         => 'kishan.xml',
                                             principal   => 'KISHAN',
                                             is_grant    => TRUE,
                                             privilege   => 'connect',
                                             start_date  => NULL,
                                             end_date    => NULL);
    
       DBMS_NETWORK_ACL_ADMIN.add_privilege (acl         => 'kishan.xml',
                                             principal   => 'KISHAN',
                                             is_grant    => TRUE,
                                             privilege   => 'resolve',
                                             start_date  => NULL,
                                             end_date    => NULL);
    END;
    /
    
    COMMIT;
    

    完成所有操作后,用户 KISHAN 应该可以访问 192.108.10.132。如果还有其他用户应该获得相同的访问权限,只需将他们添加到“添加权限”脚本中即可。

    【讨论】:

    • 除了ACL还有什么方法可以将ip地址列入白名单吗?
    • 据我所知,没有。除非你想降级到 Oracle 数据库版本 10g。
    【解决方案2】:

    @Littlefoot 描述的 ACL 控制从数据库内部对外部资源的访问(例如,访问 Web 服务或电子邮件服务器的 PL/SQL 存储过程)。如果您正在谈论将数据库客户端列入白名单,从其他主机连接到数据库,有几个选项,但请注意不要在管理开销方面陷入困境。考虑您要解决的实际问题是什么非常重要。

    你可以使用

    1. 主机服务器的本地防火墙(例如 iptables、firewall1 等)限制对端口 1521(或您正在使用的任何端口)的访问;
    2. sqlnet.ora 中的 TCP.INVITED_NODES 参数(参见此处:https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/parameters-for-the-sqlnet.ora.html#GUID-897ABB80-64FE-4F13-9F8C-99361BB4465C);
    3. 如果您有企业版数据库,则使用 Oracle Connection Manager。

    不过,一般来说,我不会限制比子网更窄的任何东西。原因是没有任何更好的方法可以更精确地做到这一点:IP 地址往往会随着 DHCP 频繁更改,这可能会导致用户无意中被锁定,并且很容易被不良行为者欺骗。跟踪每个单独的 IP 也是一场管理噩梦。

    请参阅我去年撰写的这些文章,了解更多详细信息以及需要考虑的一些重要问题:

    【讨论】:

      猜你喜欢
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      • 1970-01-01
      • 2021-01-06
      相关资源
      最近更新 更多