你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Linux开发
oracle 基础(32)
 
3.8 只限制来自特定节点的访问

背景
在许多情况下,只有指定的客户机集将连接到数据库服务器。以下是一个典型的体系结构:

此处,数据库服务器为 findb01 和 hrdb01,且数据库名为 FINDB(财务数据库)和 HRDB(HR 数据库)。HR 部门中的客户机只连接到 HRDB;如果它们需要 FINDB 中的某些数据,则连接到在财务部门的服务器上运行的应用程序并获取数据。同样,财务部门中的应用服务器从不直接连接到 HRDB。

如果财务部门中的客户机 finas01 尝试连接到 HRDB,则将出现什么情况?只要它知道有效的用户 ID 和口令,便可以成功连接。通常,您应保护用户的口令,但有时存在一些使用已知口令的普通用户。例子包括使用不安全口令(如“hrapp”、“password”甚至“abc123”)的应用程序用户。即使实施了口令管理策略(如第 4 阶段所述),口令仍有可能是为人所熟知的。

因此,必须在服务器周围构建一个防护墙,以防计算机授权列表以外的客户机连接到这些服务器。

策略
如何确保只允许来自 HR 部门的客户连接进入数据库 HRDB?方法有两种,即登录触发器和监听器节点验证。

登录触发器。在该方法中,您将创建一个触发器,它在登录时引发,检查 IP 地址,然后当 IP 地址不在允许的计算机列表中时失败。此触发器如下所示:

1  create or replace trigger valid_ip
2  after logon on database
3  begin
4    if sys_context('USERENV','IP_ADDRESS') not in (
  5      '100.14.32.9'
6    ) then
7         raise_application_error (-20001,'Login not allowed from this IP');
8    end if;
9* end;

在第 5 行中,您可以设置有效客户机的所有 IP 地址(括在引号中并由逗号分隔)。在此触发器生效后,当 SCOTT 尝试从触发器列表以外的 IP 地址连接时:

$ sqlplus scott/tiger@hrdb


ERROR:
ORA-00604:error occurred at recursive SQL level 1
ORA-20001:Login not allowed from this IP
ORA-06512:at line 5

注意错误 ORA-20001:Login not allowed from this IP,该错误置于触发器中。您可以根据需要使此消息具备说明性。还可以使触发器更强大,以收集有用信息(如将类似尝试记录在表中)。

但请注意一个非常重要的问题:由于登录触发器不会对 DBA 用户触发,因此不要在启用 DBA 角色的情况下禁止某人以用户身份登录。该风险并非想象那样恐怖;实际上,您可能需要让 DBA 从任何客户机登录。

监听器节点验证。另一个方法是在监听器本身禁用登录尝试。监听器禁止指向数据库服务器的连接尝试,因此并不需要触发器。要启用节点验证,只需在服务器 hrdb01 上的文件 $ORACLE_HOME/network/admin/sqlnet.ora 中设置以下行。

tcp.validnode_checking = yes 
tcp.invited_nodes = (hrdb01, hras01, hras02)

此处,您已经指定了允许连接到监听器的客户机(hras01 和 hras02)。还可以将主机名指定为 IP 地址。将所有节点名称置于由逗号分隔的单个不中断行中(非常重要)。别忘了添加数据库服务器名称 (hrdb01)。

重新启动后,如果客户端尝试从 hras01hras02 以外的计算机登录,则将收到错误

$ sqlplus scott/tiger@hrdb

ERROR:
ORA-12537:TNS:connection closed

这个非常不直观的错误是由在监听器级发生的过滤导致的。当监听器本身终止连接尝试时,您将收到 connection closed 错误。即使用户具有 DBA 角色也会出现该错误,这是因为该尝试尚未到达数据库

节点验证是一个非常强大的特性。有关该特性的详细信息,请阅读我撰写的 DBAzine 文章“使用 Oracle Net 构建一个简单的防火墙”。

(编辑:aniston)

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089