Oracle修改sqlnet.ora限制IP访问
linux上的sqlnet.ora限制IP访问
配置sqlnet.ora限制IP访问Oracle与防火墙类似的功能,Oracle 提供限制与允许特定的IP或主机名通过Oracle Net来访问数据库。
这个功能由sqlnet.ora配置文件来实现。
该文件通常$ORACLE_HOME/network/admin/ 目录下,与tnsnames.ora以及listener.ora位于同一路径。
用法也比较简单。
通过监听器的限制,实现轻量级访问限制,比在数据库内部通过触发器进行限制效率要高。
1. 实现通过在sqlnet.ora文件中增加下列记录来实现tcp.validnode_checking = yestcp.invited_nodes = (hostname1, hostname2,ip1,ip2)tcp.excluded_nodes = (10.103.11.17,hostname1,hostname2)当使用invited_nodes时,则所有没有包含在invited_nodes值中的IP或主机将无法通过Oracel Net连接到数据库。
而如果使用excluded_nodes时,除了excluded_nodes值中列出的IP和主机不可访问之外,其余的节点都可以访问数据库。
通常情况下,更倾向于使用excluded_nodes参数。
2. 注意使用excluded_nodes与invited_nodes的一些特性不支持通配符的使用(如hostname不能写为svhs0*,IP地址不能写为10.103.11.*)excluded_nodes与invited_nodes为互斥方式,要么使用前者,要么使用后者如果tcp.invited_nodes与tcp.excluded_nodes都存在,则tcp.invited_nodes优先要将本地地址,或者Cluster群集其他节点的地址都加入到允许列表,否则监听器可能无法启动修改之后,一定要重起监听或reload才能生效,而不需要重新启动数据库仅提供对TCP/IP协议的支持3. 实战-->使用tnsping demo92,连接正常C:\>tnsping demo92TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on25-JUN-2011 18:55:39Copyright (c) 1997, 2010, Oracle. All rights reserved.Used parameter files:d:\app\Robinson\Oracle_client\product\11.2.0\client_1\network\admin\sqlne t.oraUsed TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.103.11.209)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = demo92)))OK (0 msec)-->查看配置文件[oracle@test admin]$ more sqlnet.ora# SQLNET.ORA Network Configuration File:/oracle/92/network/admin/sqlnet.ora# Generated by Oracle configuration tools.NAMES.DIRECTORY_PATH= (ONAMES, TNSNAMES, HOSTNAME)#Added by Robinsontcp.validnode_checking = yestcp.excluded_nodes = (10.103.11.17)-->重新reload[oracle@test admin]$ lsnrctl reload listener_demo92LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 26-JUN-2011 10:03:11Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))) The command completed successfully-->再次tnsping时,收到TNS-12547错误C:\>tnsping demo92TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 25-JUN-2011 19:01:21Copyright (c) 1997, 2010, Oracle. All rights reserved.Used parameter files:d:\app\Robinson\Oracle_client\product\11.2.0\client_1\network\admin\sqlne t.oraUsed TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.103.11.209)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = demo92)))TNS-12547: TNS:lost contact-->下面的演示中如果excluded_nodes与invited_nodes都存在,则invited_nodes 优先,不再演示[oracle@test admin]$ more sqlnet.ora# SQLNET.ORA Network Configuration File:/oracle/92/network/admin/sqlnet.ora# Generated by Oracle configuration tools.NAMES.DIRECTORY_PATH= (ONAMES, TNSNAMES, HOSTNAME)#Added by Robinsontcp.validnode_checking = yestcp.excluded_nodes = (10.103.11.17)tcp.invited_nodes = (10.103.11.17)4.使用触发器限制单用户或IP段-->限制单用户从单IP登录,下面限制scott用户从客户端的登录CREATE OR REPLACE TRIGGER disableloginAFTER logon ON scott.schema -->注意使用方式为username.schemaDECLAREipaddr VARCHAR2(30);BEGINSELECT sys_context('userenv', 'ip_address')INTO ipaddrFROM dual;IF ipaddr = '10.103.11.17' THENraise_application_error('-20001','You can not login,Please contact administrator');END IF;END disablelogin;/-->限制IP段登录CREATE OR REPLACE TRIGGER chk_ip_rangeAFTER logon ON scott.schemaDECLAREipaddr VARCHAR2(30);BEGINSELECT sys_context('userenv', 'ip_address')INTO ipaddrFROM dual;IF ipaddr LIKE ('10.103.11.%') THENraise_application_error('-20001','You can not login,Please contact administrator');END IF;END chk_ip_range;/5.更多参考/reference/net_services.html/forums/thread.jspa?messageID=45664496.快捷参考有关性能优化请参考Oracle硬解析与软解析共享池的调整与优化(Sharedpool Tuning)Buffercache 的调整与优化(一)Oracle表缓存(cachingtable)的使用有关ORACLE体系结构请参考Oracle表空间与数据文件Oracle密码文件Oracle参数文件Oracle联机重做日志文件(ONLINE LOG FILE)Oracle控制文件(CONTROLFILE)Oracle归档日志Oracle回滚(ROLLBACK)和撤销(UNDO)Oracle数据库实例启动关闭过程Oracle10g SGA 的自动化管理Oracle实例和Oracle数据库(Oracle体系结构)有关闪回特性请参考Oracle闪回特性(FLASHBACK DATABASE)Oracle闪回特性(FLASHBACK DROP & RECYCLEBIN)Oracle闪回特性(Flashback Query、FlashbackTable)Oracle闪回特性(Flashback Version、Flashback Transaction)有关基于用户管理的备份和备份恢复的概念请参考Oracle冷备份Oracle热备份Oracle备份恢复概念Oracle实例恢复Oracle基于用户管理恢复的处理(详细描述了介质恢复及其处理) SYSTEM表空间管理及备份恢复SYSAUX表空间管理及恢复有关RMAN的备份恢复与管理请参考RMAN 概述及其体系结构RMAN 配置、监控与管理RMAN 备份详解RMAN 还原与恢复RMANcatalog 的创建和使用基于catalog 创建RMAN存储脚本基于catalog 的RMAN 备份与恢复使用RMAN迁移文件系统数据库到ASMRMAN 备份路径困惑(使用plus archivelog时)有关ORACLE故障请参考ORA-32004的错误处理ORA-01658错误CRS-0215错误处理ORA-00119,ORA-00132 错误处理又一例SPFILE设置错误导致数据库无法启动对参数FAST_START_MTTR_TARGET= 0 的误解及设定SPFILE错误导致数据库无法启动(ORA-01565)有关ASM请参考创建ASM实例及ASM数据库ASM 磁盘、目录的管理使用ASMCMD 工具管理ASM目录及文件有关SQL/PLSQL请参考SQLPlus常用命令替代变量与SQL*Plus环境设置使用Uniread实现SQLplus翻页功能SQL 基础-->SELECT 查询SQL 基础--> NEW_VALUE的使用SQL 基础--> 集合运算(UNION与UNION ALL)SQL 基础--> 常用函数SQL 基础--> 视图(CREATEVIEW)SQL 基础--> 创建和管理表SQL 基础--> 多表查询SQL 基础--> 过滤和排序SQL 基础--> 子查询SQL 基础--> 分组与分组函数SQL 基础--> 层次化查询(STARTBY ... CONNECT BY PRIOR) SQL 基础--> ROLLUP与CUBE运算符实现数据汇总PL/SQL--> 游标PL/SQL--> 异常处理(Exception)PL/SQL--> 语言基础PL/SQL--> 流程控制PL/SQL--> PL/SQL记录PL/SQL--> 包的创建与管理PL/SQL--> 隐式游标(SQL%FOUND)PL/SQL--> 包重载、初始化PL/SQL--> DBMS_DDL包的使用PL/SQL--> DML 触发器PL/SQL--> INSTEAD OF 触发器PL/SQL--> 存储过程PL/SQL--> 函数PL/SQL--> 动态SQLPL/SQL--> 动态SQL的常见错误有关ORACLE其它特性Oracle常用目录结构(10g)使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例日志记录模式(LOGGING、FORCE LOGGING 、NOLOGGING) 表段、索引段上的LOGGING与NOLOGGINGOralceOMF 功能详解Oracle用户、对象权限、系统权限Oracle角色、配置文件Oracle分区表Oracle外部表使用外部表管理Oracle 告警日志(ALAERT_$SID.LOG)簇表及簇表管理(Index clustered tables)数据泵EXPDP 导出工具的使用数据泵IMPDP 导入工具的使用导入导出Oracle 分区表数据SQL*Loader使用方法启用用户进程跟踪配置非默认端口的动态服务注册配置ORACLE 客户端连接到数据库systemsys,sysoper sysdba 的区别ORACLE_SID、DB_NAME、INSTANCE_NAME、DB_DOMIAN、GLOBAL_NAMEOracle补丁全集(Oracle 9i 10g 11g Path)Oracle10.2.0.1 升级到10.2.0.4Oracle彻底kill session院子网络的配置。
限制访问SQLServer的客户端IP地址
限制访问SQLServer的客户端IP地址今天被问到这个问题,以前没有处理过,在网上找了一些资料,看起来是可以做到的。
特摘录如下,以备查阅有时候,我们只想使某个IP的计算机才能连接到SQL Server服务器,不允许其他客户端连接,怎么办呢?解决方法可以直接在防火墙中做限制,只允许与指定的IP地址建立1433的通讯。
当然,从更为安全的角度来考虑,应该把1433端口改成其他的端口。
其他解决方法1(限从指定IP接入的客户端)如果使用SQL Server 2005,还可以通过端点限制的方法来实现,此方法要求一块专门的网卡,所有可以连接SQL Server的客户端均通过此网卡接入(假设此网卡的IP是192.168.1.1):1.在“SQL Server 配置管理器”的“SQL Server 2005网络配置中”,禁止除TCP/IP之外的所有协议;2.使用如下的T-SQL禁止默认的TCP端点ALTER ENDPOINT [TSQL Default TCP]STATE = STOPPED3.使用如下的T-SQL建立新的TCP端点和授权USE masterGO-- 建立一个新的端点CREATE ENDPOINT [TSQL User TCP]STATE = STARTEDAS TCP(LISTENER_PORT = 1433,LISTENER_IP = (192.168.1.1) -- 侦听的网络地址)FOR TSQL()GO-- 授予所有登录(或者指定登录)使用此端点的连接权限GRANT CONNECT ON ENDPOINT::[TSQL User TCP]TO [public]完成上述配置之后,只有通过网络地址配置为192.168.1.1的网卡接入的客户端才能访问SQL Server;另外,如果只授予指定登录对端点的连接权限,则只有指定的登录才能接入SQL Server实例。
其他解决方法2(限指定IP的客户端接入)当SQL Server 2005升级到SP2或者更高的版本的时候,还可以通过新增的触发器来实现控制。
Oracle的常见错误及解决办法
Oracle的常见错误及解决办法ORA-12528:TNS:listener: all appropriate instances are blocking new connectionsORA-12528问题是因为监听中的服务使⽤了动态服务,实例虽然启动,但没有注册到监听。
实例是通过PMON进程注册到监听上的,⽽PMON进程需要在MOUNT状态下才会启动。
所以造成了上⾯的错误。
解决这个问题,有三种⽅法:1、把监听设置为静态;2、在tnsnames.ora中追加(UR=A);3、重新启动服务;⽅法1、通过修改listener.ora的参数,把listener.ora动态注册设置为静态注册,然后重新启动监听# listener.ora Network Configuration File: $ORACLE_HOME\network\admin\listener.ora# Generated by Oracle configuration tools.LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = [IP])(PORT = 1521))))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = [DBNAME])(ORACLE_HOME = [$ORACLE_HOME])(SID_NAME = [SID])))静态注册的风险:如果在instance运⾏中,lisener重新启动,就找不到instance了。
静态注册需要先启动lisener,再启动instance。
且静态模式下,lisener status显⽰的是unknown⽅法2、启动到nomount状态,通过修改tnsnames.ora的参数# tnsnames.ora Network Configuration File: $ORACLE_HOME\network\admin\tnsnames.ora# Generated by Oracle configuration tools.SYK =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = [IP])(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = SYK)(UR=A)))然后连接上数据库SQL>alter database mount;SQL>alter database open;⽅法3、重启ORACLE或者重启ORACLE服务在oracle帐户下依序执⾏如下命令:sqlplus / as sysdba;//在其它帐户(如root)下执⾏可能会报错(ORA-01031)因为这些帐户没有在dba组中shutdown immediate;startup;oracle实例名: error while loading shared libraries: libskgxp10.so: cannot open shared object file: No such file or directory是环境变量LD_LIBRARY_PATH的问题。
Oracle数据库利用sqlnet限制ip访问
Oracle数据库利用sqlnet.ora限制ip访问
实验环境准备工作:
一台windows server 服务器、oracle数据库
第一步:在server服务器安装oralce数据库,想对比较简单,此处不做多余赘述。
第二步:找到oracle安装路径sqlnet.ora文件,原始文件配置如下图所示:
添加如下配置:
Tcp.validnode_checking=yes
Tcp.invited_nodes=(127.0.0.1,其它想要限制的ip地址)
配置完成后保存退出
第三步:重启监听
Lsnrctl stop/start
报错信息如下所示:
TNS-12537: tns:连接关闭
TNS-12560: tns:协议适配器错误
TNS-00507: 连接已关闭
第四步:排查监听及服务名配置文件
发现在监听及服务名配置文件中,数据库连接地址为:主机名称
第五步:修改sqlnet.ora文件。
调整为如下配置:
Tcp.validnode_checking=yes
Tcp.invited_nodes=(主机名称,其它想要限制的ip地址)
配置完成后重启监听进行oracle数据库的连接性测试,发现配置参数生效,达到预期效果。
sqlnet.ora配置详解
一、sqlnet.orasqlnet.ora用在oracle client端,用于配置连接服务端oracle的相关参数。
1).NAMES.DEFAULT_DOMAIN:域名domain定义,在你用sqlplus访问数据库的时候,会在tns别名后面加上".domain"示例:.NAMES.DEFAULT_DOMAIN=.com在客户端执行命令:sqlplus username/password@local_dev的时候,会出现如下错误信息:"ORA-12154: TNS: 无法处理服务名"或者"ORA-12154: TNS:could not resolve service name"这样的错误信息。
因为sqlplus username/password@orcl的时候,将tns别名“orcl”转换成了“”,所以在tnsnames.ora中找不到,就报错了。
修改tnsnames.ora中的定义如下: =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.147)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))再执行sqlplus username/password@orcl连接成功。
2)NAMES.DIRECTORY_PATH:定义了在客户端连接数据库时,采用什么样的匹配方式。
示例:NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)那么在客户端执行sqlplus username/password@local_dev连接数据库的时,首先采用tnsnames.ora的别名配置连接数据库;如果连接上;再采用ONAMES进行解析,最后采用主机名进行解析。
linux上的sqlnet.ora限制IP访问
配置sqlnet.ora限制IP访问Oracle与防火墙类似的功能,Oracle 提供限制与允许特定的IP或主机名通过Oracle Net来访问数据库。
这个功能由sqlnet.ora配置文件来实现。
该文件通常$ORACLE_HOME/network/admin/ 目录下,与tnsnames.ora以及listener.ora位于同一路径。
用法也比较简单。
通过监听器的限制,实现轻量级访问限制,比在数据库内部通过触发器进行限制效率要高。
1. 实现通过在sqlnet.ora文件中增加下列记录来实现tcp.validnode_checking = yestcp.invited_nodes = (hostname1, hostname2,ip1,ip2)tcp.excluded_nodes = (10.103.11.17,hostname1,hostname2)当使用invited_nodes时,则所有没有包含在invited_nodes值中的IP或主机将无法通过Oracel Net连接到数据库。
而如果使用excluded_nodes时,除了excluded_nodes值中列出的IP和主机不可访问之外,其余的节点都可以访问数据库。
通常情况下,更倾向于使用excluded_nodes参数。
2. 注意使用excluded_nodes与invited_nodes的一些特性不支持通配符的使用(如hostname不能写为svhs0*,IP地址不能写为10.103.11.*)excluded_nodes与invited_nodes为互斥方式,要么使用前者,要么使用后者如果tcp.invited_nodes与tcp.excluded_nodes都存在,则tcp.invited_nodes优先要将本地地址,或者Cluster群集其他节点的地址都加入到允许列表,否则监听器可能无法启动修改之后,一定要重起监听或reload才能生效,而不需要重新启动数据库仅提供对TCP/IP协议的支持3. 实战-->使用tnsping demo92,连接正常C:\>tnsping demo92TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on25-JUN-2011 18:55:39Copyright (c) 1997, 2010, Oracle. All rights reserved.Used parameter files:d:\app\Robinson\Oracle_client\product\11.2.0\client_1\network\admin\sqlne t.oraUsed TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.103.11.209)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = demo92)))OK (0 msec)-->查看配置文件[oracle@test admin]$ more sqlnet.ora# SQLNET.ORA Network Configuration File:/oracle/92/network/admin/sqlnet.ora# Generated by Oracle configuration tools.NAMES.DIRECTORY_PATH= (ONAMES, TNSNAMES, HOSTNAME)#Added by Robinsontcp.validnode_checking = yestcp.excluded_nodes = (10.103.11.17)-->重新reload[oracle@test admin]$ lsnrctl reload listener_demo92LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 26-JUN-2011 10:03:11Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))) The command completed successfully-->再次tnsping时,收到TNS-12547错误C:\>tnsping demo92TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 25-JUN-2011 19:01:21Copyright (c) 1997, 2010, Oracle. All rights reserved.Used parameter files:d:\app\Robinson\Oracle_client\product\11.2.0\client_1\network\admin\sqlne t.oraUsed TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.103.11.209)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = demo92)))TNS-12547: TNS:lost contact-->下面的演示中如果excluded_nodes与invited_nodes都存在,则invited_nodes 优先,不再演示[oracle@test admin]$ more sqlnet.ora# SQLNET.ORA Network Configuration File:/oracle/92/network/admin/sqlnet.ora# Generated by Oracle configuration tools.NAMES.DIRECTORY_PATH= (ONAMES, TNSNAMES, HOSTNAME)#Added by Robinsontcp.validnode_checking = yestcp.excluded_nodes = (10.103.11.17)tcp.invited_nodes = (10.103.11.17)4.使用触发器限制单用户或IP段-->限制单用户从单IP登录,下面限制scott用户从客户端的登录CREATE OR REPLACE TRIGGER disableloginAFTER logon ON scott.schema -->注意使用方式为username.schemaDECLAREipaddr VARCHAR2(30);BEGINSELECT sys_context('userenv', 'ip_address')INTO ipaddrFROM dual;IF ipaddr = '10.103.11.17' THENraise_application_error('-20001','You can not login,Please contact administrator');END IF;END disablelogin;/-->限制IP段登录CREATE OR REPLACE TRIGGER chk_ip_rangeAFTER logon ON scott.schemaDECLAREipaddr VARCHAR2(30);BEGINSELECT sys_context('userenv', 'ip_address')INTO ipaddrFROM dual;IF ipaddr LIKE ('10.103.11.%') THENraise_application_error('-20001','You can not login,Please contact administrator');END IF;END chk_ip_range;/5.更多参考/reference/net_services.html/forums/thread.jspa?messageID=45664496.快捷参考有关性能优化请参考Oracle硬解析与软解析共享池的调整与优化(Sharedpool Tuning)Buffercache 的调整与优化(一)Oracle表缓存(cachingtable)的使用有关ORACLE体系结构请参考Oracle表空间与数据文件Oracle密码文件Oracle参数文件Oracle联机重做日志文件(ONLINE LOG FILE)Oracle控制文件(CONTROLFILE)Oracle归档日志Oracle回滚(ROLLBACK)和撤销(UNDO)Oracle数据库实例启动关闭过程Oracle10g SGA 的自动化管理Oracle实例和Oracle数据库(Oracle体系结构)有关闪回特性请参考Oracle闪回特性(FLASHBACK DATABASE)Oracle闪回特性(FLASHBACK DROP & RECYCLEBIN)Oracle闪回特性(Flashback Query、FlashbackTable)Oracle闪回特性(Flashback Version、Flashback Transaction)有关基于用户管理的备份和备份恢复的概念请参考Oracle冷备份Oracle热备份Oracle备份恢复概念Oracle实例恢复Oracle基于用户管理恢复的处理(详细描述了介质恢复及其处理) SYSTEM表空间管理及备份恢复SYSAUX表空间管理及恢复有关RMAN的备份恢复与管理请参考RMAN 概述及其体系结构RMAN 配置、监控与管理RMAN 备份详解RMAN 还原与恢复RMANcatalog 的创建和使用基于catalog 创建RMAN存储脚本基于catalog 的RMAN 备份与恢复使用RMAN迁移文件系统数据库到ASMRMAN 备份路径困惑(使用plus archivelog时)有关ORACLE故障请参考ORA-32004的错误处理ORA-01658错误CRS-0215错误处理ORA-00119,ORA-00132 错误处理又一例SPFILE设置错误导致数据库无法启动对参数FAST_START_MTTR_TARGET= 0 的误解及设定SPFILE错误导致数据库无法启动(ORA-01565)有关ASM请参考创建ASM实例及ASM数据库ASM 磁盘、目录的管理使用ASMCMD 工具管理ASM目录及文件有关SQL/PLSQL请参考SQLPlus常用命令替代变量与SQL*Plus环境设置使用Uniread实现SQLplus翻页功能SQL 基础-->SELECT 查询SQL 基础--> NEW_VALUE的使用SQL 基础--> 集合运算(UNION与UNION ALL)SQL 基础--> 常用函数SQL 基础--> 视图(CREATEVIEW)SQL 基础--> 创建和管理表SQL 基础--> 多表查询SQL 基础--> 过滤和排序SQL 基础--> 子查询SQL 基础--> 分组与分组函数SQL 基础--> 层次化查询(STARTBY ... CONNECT BY PRIOR) SQL 基础--> ROLLUP与CUBE运算符实现数据汇总PL/SQL--> 游标PL/SQL--> 异常处理(Exception)PL/SQL--> 语言基础PL/SQL--> 流程控制PL/SQL--> PL/SQL记录PL/SQL--> 包的创建与管理PL/SQL--> 隐式游标(SQL%FOUND)PL/SQL--> 包重载、初始化PL/SQL--> DBMS_DDL包的使用PL/SQL--> DML 触发器PL/SQL--> INSTEAD OF 触发器PL/SQL--> 存储过程PL/SQL--> 函数PL/SQL--> 动态SQLPL/SQL--> 动态SQL的常见错误有关ORACLE其它特性Oracle常用目录结构(10g)使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例日志记录模式(LOGGING、FORCE LOGGING 、NOLOGGING) 表段、索引段上的LOGGING与NOLOGGINGOralceOMF 功能详解Oracle用户、对象权限、系统权限Oracle角色、配置文件Oracle分区表Oracle外部表使用外部表管理Oracle 告警日志(ALAERT_$SID.LOG)簇表及簇表管理(Index clustered tables)数据泵EXPDP 导出工具的使用数据泵IMPDP 导入工具的使用导入导出Oracle 分区表数据SQL*Loader使用方法启用用户进程跟踪配置非默认端口的动态服务注册配置ORACLE 客户端连接到数据库systemsys,sysoper sysdba 的区别ORACLE_SID、DB_NAME、INSTANCE_NAME、DB_DOMIAN、GLOBAL_NAMEOracle补丁全集(Oracle 9i 10g 11g Path)Oracle10.2.0.1 升级到10.2.0.4Oracle彻底kill session院子网络的配置。
sqlnet.ora配置详解
用在oracleclient端,用于配置连接服务端oracle的相关参数。
1).:域名domain定义,在你用sqlplus访问数据库的时候,会在tns别名后面加上".domain"示例:.=在客户端执行命令:sqlplususername/password@local_dev的时候,会出现如下错误信息:"ORA-12154:TNS:无法处理服务名"或者"ORA-12154:TNS:couldnotresolveservicename"这样的错误信息。
因为sqlplususername/password@orcl的时候,将tns别名“orcl”转换成了“”,所以在中找不到,就报错了。
修改中的定义如下:=(DESCRIPTION=(ADDRESS_LIST=)(CONNECT_DATA=(SERVICE_NAME=orcl)))再执行sqlplususername/password@orcl连接成功。
2):定义了在客户端连接数据库时,采用什么样的匹配方式。
示例:=(TNSNAMES,ONAMES,HOSTNAME)那么在客户端执行sqlplususername/password@local_dev连接数据库的时,首先采用的别名配置连接数据库;如果连接上;再采用ONAMES进行解析,最后采用主机名进行解析。
ONAMES表示Oracle使用自己的名称服务器(OracleNameServer)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMES;HOSTNAME表示使用host文件,DNS,NIS等来解析;3):定义登录数据库的认证方式,这个参数默认没有设置。
示例:=(NONE,NTS)NONE表示Oracle数据库身份验证,NTS表示操作系统身份验证,两种方式可以并用,先后顺序表明验证的优先方式。
4)=yes:表示启用客户端的IP检查,非法的IP将被拒绝访问Oracle。
sqlnetora配置详解
一、用在oracle client端,用于配置连接服务端oracle的相关参数。
1).:域名domain定义,在你用sqlplus访问数据库的时候,会在tns别名后面加上".domain"示例:.=在客户端执行命令:sqlplus username/password@local_dev的时候,会出现如下错误信息:"ORA-12154: TNS: 无法处理服务名"或者"ORA-12154: TNS:could not resolve service name"这样的错误信息。
因为sqlplus username/password@orcl的时候,将tns别名“orcl”转换成了“”,所以在中找不到,就报错了。
修改中的定义如下:=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))再执行sqlplus username/password@orcl连接成功。
2):定义了在客户端连接数据库时,采用什么样的匹配方式。
示例:= (TNSNAMES, ONAMES, HOSTNAME)那么在客户端执行sqlplus username/password@local_dev连接数据库的时,首先采用的别名配置连接数据库;如果连接上;再采用ONAMES进行解析,最后采用主机名进行解析。
ONAMES表示Oracle使用自己的名称服务器(Oracle Name Server)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMES;HOSTNAME表示使用host文件,DNS,NIS等来解析;3):定义登录数据库的认证方式,这个参数默认没有设置。
示例:=(NONE,NTS)NONE表示Oracle数据库身份验证,NTS表示操作系统身份验证,两种方式可以并用,先后顺序表明验证的优先方式。
数据库连接报错之IO异常(TheNetworkAdaptercouldnotestabli。。。
数据库连接报错之IO异常(TheNetworkAdaptercouldnotestabli。
Io 异常: The Network Adapter could not establish the connection有以下四个原因:1、oracle配置listener.ora和tnsnames.ora⽂件⾥⾯查看是否配置正确2、IP错误在设置URL时错误,例如:jdbc:oracle:thin:@192.168.0.36:1521:sharp3、防⽕墙机器上安装有其他放⽕墙,可能是服务器端⼝号屏蔽⽽造成的。
关闭防⽕墙后,尝试重新连接。
4、数据库监听未启动1.su oracle然后启动监听器1.lsnrctl start会看到启动成功的界⾯;1.lsnrctl stop停⽌监听器命令.1.lsnrctl status查看监听器命令.oracle数据库的安全包含两部分:1.⼀部分是os的安全2.⽹络的安全3.oracle软件本⾝的安全os的安全依赖相应的操作系统及管理员的技术⽔平,我们这⾥只谈谈oracle的安全我了解的oracle软件的安全包含:1.更改oracle的默认监听端⼝号2.给监听器加密码3.oracle控制ip的连接下⾯将针对这三个⽅⾯测试学习---------oracle默认监听端⼝更改--------------1. 更改oracle的默认监听端⼝号修改端⼝号的整体步骤1.1 。
查看当前监听的状态1.2 。
停⽌监听1.3 。
修改监听⽂件的端⼝号1.4 。
修改初始化参数local_listener1.5 . 重启监听器1.6 。
修改完毕,使⽤新端⼝登录测试实践步骤:1.1 。
查看当前监听的状态C:/Documents and Settings/skate_db>lsnrctl statusLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-7⽉ -2008 12:11:19Copyright (c) 1991, 2005, Oracle. All rights reserved.正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))LISTENER 的 STATUS------------------------别名 LISTENER版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production启动⽇期 19-7⽉ -2008 11:47:59正常运⾏时间 0 天 0 ⼩时 23 分 19 秒跟踪级别 off安全性 ON: Password or Local OS AuthenticationSNMP OFF监听程序参数⽂件 E:/oracle/product/10.2.0/db_3/network/admin/listener.ora监听程序⽇志⽂件 E:/oracle/product/10.2.0/db_3/network/log/listener.log监听端点概要...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=skate)(PORT=1522)))服务摘要..服务 "PLSExtProc" 包含 1 个例程。
oracle restrict规则
一、什么是Oracle Restrict规则Oracle Restrict规则指的是Oracle数据库中对数据访问进行限制的一种规则。
它可以帮助数据库管理员或开发人员限制用户对数据库中特定数据的访问权限,从而保护数据的安全性和完整性。
二、 Oracle Restrict规则的作用1. 保护敏感数据Oracle Restrict规则可以用来保护数据库中的敏感数据,例如个人隐私信息、商业机密等。
通过限制只有经过授权的用户才能访问这些数据,可以防止未经授权的用户进行非法访问或泄露敏感数据。
2. 控制数据访问权限数据库管理员可以利用Oracle Restrict规则对用户的数据访问权限进行精确控制。
通过配置不同的Restrict规则,可以限制用户对特定表、视图或列的访问权限,从而确保数据只能被授权用户访问。
3. 提高数据安全性通过合理配置Oracle Restrict规则,可以有效提高数据库的安全性。
限制用户的访问权限可以减少内部和外部的数据泄露风险,保护数据库中的数据免受未经授权的访问和篡改。
三、 Oracle Restrict规则的配置方法1. 使用Oracle自带的权限管理工具Oracle数据库自带了完善的权限管理工具,可以通过这些工具来配置和管理Restrict规则。
可以使用GRANT和REVOKE语句来授予或收回用户的访问权限;也可以使用角色和权限组来管理不同用户的权限。
2. 使用数据库管理工具一些数据库管理工具也提供了可视化的权限管理界面,可以方便地对Oracle Restrict规则进行配置。
管理员可以通过这些工具直观地设置用户的访问权限、定义访问规则等,简化了权限管理的操作流程。
3. 编写存储过程和触发器对于复杂的数据访问限制需求,可以考虑编写存储过程和触发器来实现。
通过编写自定义的存储过程和触发器,可以实现更加精细化和灵活的数据访问控制,满足特定业务场景下的需求。
四、 Oracle Restrict规则的最佳实践1. 遵循最小权限原则在配置Oracle Restrict规则时,应该遵循最小权限原则,即给予用户最小必要的访问权限。
通过SQLNET.ora文件限制Ip地址访问
通过SQLNET.ora文件限制Ip地址访问在Oracle数据库中,我们可以通过SQLNET.ora文件实现地址访问限制。
在SQLNET.ora文件中设置以下参数可以实现IP访问限制:tcp.validnode_checking=yestcp.invited_nodes=(ip1,ip2......)tcp.excluded_nodes=(ip1,ip2......)在未设置这些参数前,测试数据库可以正常访问:D:\>tnsping eygleTNS Ping Utility for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-1月 -2008 14:52:52Copyright (c) 1997, 2006, Oracle. All rights reserved.已使用的参数文件,:C:\oracle\10.2.0\network\admin\sqlnet.ora已使用 TNSNAMES 适配器来解析别名Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.33.11)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = eygle)))OK (30 毫秒)当设置参数之后:[oracle@jumper admin]$ cat sqlnet.ora# SQLNET.ORA Network Configuration File:/opt/oracle/product/9.2.0/network/admin/sqlnet.ora# Generated by Oracle configuration tools.NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)tcp.validnode_checking=yestcp.invited_nodes=(172.16.33.11,172.16.34.89)重新启动监听器使设置生效:[oracle@jumper admin]$ lsnrctl startLSNRCTL for Linux: Version 9.2.0.4.0 - Production on 28-JAN-2008 14:42:01 Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. Starting /opt/oracle/product/9.2.0/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 9.2.0.4.0 - ProductionSystem parameter file is/opt/oracle/product/9.2.0/network/admin/listener.oraLog messages written to/opt/oracle/product/9.2.0/network/log/listener.logTrace information written to/opt/oracle/product/9.2.0/network/trace/listener.trcListening on:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.33.11)(PORT=1521)))Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.11)(PORT=1521))) STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 9.2.0.4.0 - ProductionStart Date 28-JAN-2008 14:42:01Uptime 0 days 0 hr. 0 min. 0 secTrace Level supportSecurity ONSNMP OFFListener ParameterFile /opt/oracle/product/9.2.0/network/admin/listener.oraListener LogFile /opt/oracle/product/9.2.0/network/log/listener.logListener TraceFile /opt/oracle/product/9.2.0/network/trace/listener.trc Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.33.11)(PORT=1521))) Services Summary...Service "eygle" has 1 instance(s).Instance "eygle", status UNKNOWN, has 1 handler(s) for this service... Service "julia" has 1 instance(s).Instance "eygle", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully我们再来看客户端的访问:D:\>tnsping eygleTNS Ping Utility for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-1月 -2008 14:53:19Copyright (c) 1997, 2006, Oracle. All rights reserved.已使用的参数文件:C:\oracle\10.2.0\network\admin\sqlnet.ora已使用 TNSNAMES 适配器来解析别名Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.33.11)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = eygle)))TNS-12547: TNS: 丢失连接需要注意的是一定要将本地地址,或者Cluster群集其他节点的地址都加入到允许列表,否则监听器可能无法启动。
Oracle RAC 修改 IP 地址
Oracle RAC 修改IP 地址环境: RedHat Enterprise Linux 4.7ORACLE 10gR2 RAC (ASM)IP 地址做如下修改:Public IP 192.168.10.1 -- > 192.168.10.201Public IP 192.168.10.2 -- > 192.168.10.202Virtual IP 192.168.10.3 -- > 192.168.10.203Virtual IP 192.168.10.4 -- > 192.168.10.204private IP 保持不变一、停止Oracle 10g RAC[oracle@rac1 ~]$ crs_stat -tName Type Target State Host------------------------------------------------------------ora.oradb.db application ONLINE ONLINE rac2 ora....yora.cs application ONLINE ONLINE rac2 ora....db1.srv application ONLINE ONLINE rac1 ora....db2.srv application ONLINE ONLINE rac2 ora....b1.inst application ONLINE ONLINE rac1 ora....b2.inst application ONLINE ONLINE rac2 ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application ONLINE ONLINE rac1ora.rac1.gsd application ONLINE ONLINE rac1ora.rac1.ons application ONLINE ONLINE rac1ora.rac1.vip application ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2ora.rac2.gsd application ONLINE ONLINE rac2ora.rac2.ons application ONLINE ONLINE rac2ora.rac2.vip application ONLINE ONLINE rac2srvctl stop database -d oradbsrvctl stop asm -n rac2srvctl stop asm -n rac1srvctl stop nodeapps -n rac2srvctl stop nodeapps -n rac1[root@rac1 ~]# crs_stat -tName Type Target State Host------------------------------------------------------------ora.oradb.db application OFFLINE OFFLINEora....yora.cs application OFFLINE OFFLINEora....db1.srv application OFFLINE OFFLINEora....db2.srv application OFFLINE OFFLINEora....b1.inst application OFFLINE OFFLINEora....b2.inst application OFFLINE OFFLINEora....SM1.asm application OFFLINE OFFLINEora....C1.lsnr application OFFLINE OFFLINEora.rac1.gsd application OFFLINE OFFLINEora.rac1.ons application OFFLINE OFFLINEora.rac1.vip application OFFLINE OFFLINEora....SM2.asm application OFFLINE OFFLINEora....C2.lsnr application OFFLINE OFFLINEora.rac2.gsd application OFFLINE OFFLINEora.rac2.ons application OFFLINE OFFLINEora.rac2.vip application OFFLINE OFFLINE二、对Oracle 10g RAC的配置进行如下修改2.1设置listener.ora和tnsnames.ora, 检查这些文件中是否有指定原来ip的地方, 修改为更改后的ip地址。
解决oracle端口本机可通其他ip不通
解决oracle 端口本机可通其他ip不通提示无法连接远程Oracle。
我试着telnet Oracle服务器1521 端口,提示连接失败。
D:\Documents and Settings\Administrator>telnet 10.201.70.68 1521正在连接到10.201.70.68...不能打开到主机的连接,在端口1521: 连接失败Oracle服务器与本机都在局域网内,不存在网络不通问题,怎么会无法连接。
检查10.201.70.68并未启动防火墙,可以ping通。
但发现直接在Oracle服务器上连接oracle也不能正常连接。
后发现为listener.ora导致,经过修改\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora 数据库恢复正常。
再次telnet Oracle服务器的1521端口,依然连接失败。
D:\Documents and Settings\Administrator>telnet 10.201.70.68 1521正在连接到10.201.70.68...不能打开到主机的连接,在端口1521: 连接失败用命令查看当前端口情况netstat -a –nC:\Documents and Settings\Administrator>netstat -a -nActive ConnectionsProto Local Address Foreign Address StateTCP 0.0.0.0:23 0.0.0.0:0 LISTENINGTCP 0.0.0.0:80 0.0.0.0:0 LISTENINGTCP 0.0.0.0:135 0.0.0.0:0 LISTENINGTCP 0.0.0.0:445 0.0.0.0:0 LISTENINGTCP 0.0.0.0:1025 0.0.0.0:0 LISTENING TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING TCP 0.0.0.0:1035 0.0.0.0:0 LISTENING TCP 0.0.0.0:1080 0.0.0.0:0 LISTENING TCP 0.0.0.0:1139 0.0.0.0:0 LISTENING TCP 0.0.0.0:1801 0.0.0.0:0 LISTENING TCP 0.0.0.0:2103 0.0.0.0:0 LISTENING TCP 0.0.0.0:2105 0.0.0.0:0 LISTENING TCP 0.0.0.0:2107 0.0.0.0:0 LISTENING TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING TCP 10.201.70.68:139 0.0.0.0:0 LISTENINGTCP 10.201.70.68:3389 10.201.70.75:53370 ESTABLISHEDTCP 127.0.0.1:1142 0.0.0.0:0 LISTENINGTCP 127.0.0.1:1521 0.0.0.0:0 LISTENINGTCP 127.0.0.1:42424 0.0.0.0:0 LISTENINGUDP 0.0.0.0:445 *:*UDP 0.0.0.0:1034 *:*1521端口处于监听状态,但是从我本机还是无法Telnet服务器端口。
如何禁止特定IP访问Oracle数据库
数据库 如何禁止特定 IP 访问 Oracle 数据库通过使用数据库服务器端的 sqlnet.ora 文件可以实现禁止指定 IP 主机访问数据库的功能,这对 于提升数据库的安全性有很大的帮助,与此同时,这个技术为我们管理和约束数据库访问控制提 供了有效的手段.下面是实现这个目的的具体步骤仅供参考: 1.默认的服务器端 sqlnet.ora 文件的内容: 这里我们以 Oracle10.2.0.3 版本为例进行简述,先来看一下当前 sqlnet.ora 文件内容:# This file is actually generated by netca. But if customers choose to # install "Software Only", this file wont exist and without the native # authentication, they will not be able to connect to the database on NT. SQLNET.AUTHENTICATION_SERVICES = (NTS)2.确认客户端的 IP 地址:C:\Documents and Settings\Administrator>ipconfig WindowsIP Configuration Ethernet adapter Local Area Connection 2: Media State . . . . . . . . . . . : Media disconnected Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 9.123.112.16 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 9.123.112.13.在客户端分别使用 tnsping 命令和 sqlplus 命令来验证数据库的连通性:C:\Documents and Settings\Administrator>tnsping irmdb TNS Ping Utility for 32-bit Windows: Version 10.2.0.3.0 - Production on 06-APR2010 11:05:09 Copyright (c) 1997, 2006, Oracle. All rights reserved. Used parameter files: C:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = 9.123.112.34)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = irmdb ))) OK (20 msec) C:\Documents and Settings\Administrator>sqlplus /nolog SQL*Plus: Release 10.2.0.3.0 - Production on Tue Apr 6 11:05:12 2010 Copyright (c) 1982, 2006, Oracle. All Rights Reserved. Connected.到这里说明在客户端两种方式都证明的数据库的可连通性. 4.限制客户端 IP 地址 9.123.112.16 对当前 irmdb 数据库的访问:我们只需要在服务器端的 sqlnet.ora 文件中添加下面的内容即可.# This file is actually generated by netca. But if customers choose to # install "Software Only", this file wont exist and without the native # authentication, they will not be able to connect to the database on NT. SQLNET.AUTHENTICATION_SERVICES = (NTS) tcp.validnode_checking=yes tcp.invited_nodes=(9.123.112.34) tcp.excluded_nodes=(9.123.112.16)第一行的含义:开启 IP 限制功能; 第二行的含义:允许访问数据库的 IP 地址列表,多个 IP 地址使用逗号分开,此例中我们写 入数据库服务器的 IP 地址; 第三行的含义:禁止访问数据库的 IP 地址列表,多个 IP 地址使用逗号分开,此处我们写入 欲限制的 IP 地址 9.123.112.16. 5.重新启服务器端 listener 后生效(这里也可以通过 lsnrctl reload 方式实现):C:\Documents and Settings\Administrator>lsnrctl stop LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 06-APR2010 11:07:48 Copyright (c) 1991, 2006, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=.ibm .com)(POR T=1521))) The command completed successfully C:\Documents and Settings\Administrator>lsnrctl start LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 06-APR2010 11:07:52 Copyright (c) 1991, 2006, Oracle. All rights reserved. Starting tnslsnr: please wait... TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Production System parameter file is C:\oracle\product\10.2.0\db_1\network\admin\listener.ora Log messages written to C:\oracle\product\10.2.0\db_1\network\log\listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=.ibm.c om)(POR T=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=.ibm .com)(POR T=1521))) STATUS of the LISTENER -----------------------Alias LISTENER Version TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Produ ction Start Date 06-APR-2010 11:07:53Uptime 0 days 0 hr. 0 min. 2 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File C:\oracle\product\10.2.0\db_1\network\admin\listener.o ra Listener Log File C:\oracle\product\10.2.0\db_1\network\log\listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1 521))) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully C:\Documents and Settings\Administrator>sqlplus /nolog SQL*Plus: Release 10.2.0.3.0 - Production on Tue Apr 6 11:07:57 2010 Copyright (c) 1982, 2006, Oracle. All Rights Reserved. SQL> conn / as sysdba; Connected. SQL> alter system register; System altered. SQL> quit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Pr oduction With the Partitioning, OLAP and Data Mining options C:\Documents and Settings\Administrator>lsnrctl status LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 06-APR2010 11:08:05 Copyright (c) 1991, 2006, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=.ibm .com)(PORT=1521))) STATUS of the LISTENER -----------------------Alias LISTENER Version TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Produ ction Start Date 06-APR-2010 11:07:53 Uptime 0 days 0 hr. 0 min. 12 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File C:\oracle\product\10.2.0\db_1\network\admin\listener.ora Listener Log File C:\oracle\product\10.2.0\db_1\network\log\listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1 521)))Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... Service "irmdb" has 1 instance(s). Instance "irmdb", status READY, has 1 handler(s) for this service... Service "irmdb_XPT" has 1 instance(s). Instance "irmdb", status READY, has 1 handler(s) for this service... The command completed successfully6.在客户端(9.123.112.16)分别再次使用 tnsping 命令和 sqlplus 命令来验证数据库的连通 性:C:\Documents and Settings\Administrator>tnsping irmdb TNS Ping Utility for 32-bit Windows: Version 10.2.0.3.0 - Production on 06-APR2010 11:09:20 Copyright (c) 1997, 2006, Oracle. All rights reserved. Used parameter files: C:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = 9.123.112.34)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = irmdb ))) TNS-12537: TNS:connection closed C:\Documents and Settings\Administrator>sqlplus /nolog SQL*Plus: Release 10.2.0.3.0 - Production on Tue Apr 6 11:09:23 2010 Copyright (c) 1982, 2006, Oracle. All Rights Reserved. ERROR: ORA-12537: TNS:connection closed到这里我们就可以证明,通过修改 sqlnet.ora 的方法,我们实现了限制指定机器 IP 访问数 据库的功能. 最后需要特别注意的是 tcp.invited_nodes 允许列表的优先级要高于 tcp.excluded_nodes 受限 IP 列表.也就是说如果同一个 IP 地址如果同时出现在两个列表里的话,那么这个 IP 地址还 是可以访问对应的数据库的.。
Oracle使用本地IP地址连接异常的解决方法
Oracle使用本地IP地址连接异常的解决方法前几天的安装的Oracle测试环境,今天发现不能使用本地IP连接,连接提示错误“Oracle the network adapter could not establish the connection”这个问题折腾我时间比较长,网上很多资料都不太适合我的情况。
不过最后还是被找到了花了很多时间在其他方面没有锁定问题根源.1 开始以为是防火墙 server client端都排除2 oracle client端问题(ubuntu 安装的client端)3 最后用程序测试发现还是报Network adapter问题最终锁定肯定是数据库server端问题继续搜索发现问题.------------------------------------------------------------------------------------------------------------1.确定oracle Listener 监听服务已经启动。
2.如果你的oracle数据库不是安装在本机那么请把oracle所在主机防火墙给关掉(哪怕你的防火墙开放1521端口,因为当有一个连接请求 1521端口时oracle会随机分配另一个端口给它.这是个人见解!望高手指点)3.确定你连接的IP地址正确。
如果以上问题你都核实过那么请继续往下看。
开始我是用eclipse database development 配置时发现了此问题.后来用Oracle SQL Developer同样也无法连接.后来试了试sqlplus却可以连接.于是我再sqlplus试了一下192.168.1.2这个地址(同样是本机)却给出了这样的答案。
第一次无监听程序,提示再输入用户名却又连接上了。
(看来第二次是跟你输入sqlplus一样的)这个答案很明确了当你直接输入sqlplus可以登录,但是你把本机的IP给加上却不能登录。
限制ip访问数据库的方法
限制ip访问数据库的⽅法⼀、需求限制某个ip或某个ip段才能访问Oracle数据库通过sqlnet.ora通过/etc/hosts.deny和/etc/hosts.allow通过iptables通过Oracle触发器限制⼆、实现⽅法数据库服务器ip地址为192.168.31.711. 通过sqlnet.oraa. 关闭数据库服务器上的防⽕墙,修改sqlnet.ora⽂件该⽂件放在$ORACLE_HOME/network/admin下,如果没有就在该⽬录下创建⼀个即可添加以下两⾏tcp.validnode_checking = yestcp.invited_nodes = (192.168.31.71, 192.168.31.77)这⾥需要注意的是必须把本机ip地址加进来(不能写成localhost和127.0.0.1),否则监听启动会报错b. 重启监听,让sqlnet.ora的修改⽣效lsnrctl stoplsnrctl start设置之后就只有这两个ip地址192.168.31.71, 192.168.31.77能访问数据库,其它ip地址访问会报ORA-12547: TNS:lost contact错误。
tcp.invited_nodes的意思是开通⽩名单,不在⽩名单中的⼀律拒绝访问,它也可以写成(192.168.31.*, 192.168.31.0/24)等⽅式,表明这个⽹段都能访问,另外还有个参数tcp.excluded_nodes,表⽰⿊名单2. 通过/etc/hosts.deny和/etc/hosts.allowsqlnet.ora属于数据库层⾯的限制,但如果⼀个ip能够使⽤root或者oracle,ssh到这台数据库服务器的话,那么它依然能够访问数据库。
为了避免这种情况,这时就需要通过/etc/hosts.allow和/etc/hosts.deny去限制某个ip或者ip段才能ssh访问数据库服务器先删除前⾯实验添加的sqlnet.ora,然后重启监听lsnrctl stoplsnrctl starta. 修改/etc/hosts.deny在⽂件尾部添加⼀⾏all:all:deny第⼀个all表⽰禁掉所有使⽤tcp_wrappers库的服务,举例来说就是ssh,telnet等服务第⼆个all表⽰所有⽹段b. 修改/etc/hosts.allow在前⾯⼀步中禁掉所有的⽹段,所以在这⼀步中要开通指定的⽹段修改/etc/hosts.allow,在⽂件尾部添加all:192.168.31.71:allowall:192.168.31.47:allow格式与hosts.deny⼀样,第⼀⾏表⽰把本机放开,第⼆⾏表⽰给.47开通⽩名单,如果⽤其他机器ssh或telnet连接71这个机器,就会出现如下报错[oracle@oracle19c1 ~]$ ssh 192.168.31.71ssh_exchange_identification: read: Connection reset by peer[oracle@oracle19c1 ~]$ telnet 192.168.31.71 22Trying 192.168.31.71...Connected to 192.168.31.71.Escape character is '^]'.Connection closed by foreign host.连数据库却不受影响,因为数据库服务不归hosts.deny和hosts.allow限制[oracle@oracle19c1 ~]$ sqlplus sys/xxxxx@192.168.31.71:1521/orcltest as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Sun Aug 16 23:12:492020Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options其中ip地址也可以换成以下的写法通配符的形式 192.168.31.*表⽰192.168.31这个⽹段⽹段/掩码 192.168.31.0/255.255.255.0也表⽰192.168.31这个⽹段3. 通过iptablessqlnet.ora能够限制数据库的访问,/etc/hosts.deny和/etc/hosts.allow能够限制ssh的访问,使⽤linux⾃带的防⽕墙功能既能限制数据库的访问,也能限制ssh的访问呢。
按装oracle后设置ip的一些设置
由于之前ip没有确定,所以目前的oracle只能是跑单机,要想外边连到oracle需要一些设置
第一步肯定是设置ip,
设置好ip后oracle要做一定的修改
打开命令行窗口Leabharlann 输入netca会出现下边的窗口
下一步
选择删除,下一步
下一步
下一步
下一步
下一步
下一步
下一步
下一步
下一步
下一步
下一步
点击完成
怎么解决限制访问SQLServer的IP地址呢
怎么解决限制访问SQLServer的IP地址呢
大家知道怎幺解决限制访问SQLServer的IP地址吗?下面我们就给大家详细介绍一下吧!我们积累了一些经验,在此拿出来与大家分享下,请大家互相指正。
解决方法:可以直接在防火墙中做限制,只允许与指定的IP地址建立1433的通讯。
当然,从更为安全的角度来考虑,应该把1433端口改成其他的端口。
其他解决方法1(限从指定IP接入的客户端):如果使用SQLServer2005,还可以通过端点限制的方法来实现,此方法要求一块专门的网卡,所有可以连接SQLServer的客户端均通过此网卡接入(假设此网卡的IP是192.168.1.1):
1.在SQL Server配置管理器”的SQLServer2005网络配置中”,禁止除TCP/IP之外的所有协议;
2.使用如下的T-SQL禁止默认的TCP端点
!--
Code highlighting produced byActiproCodeHighlighter(freeware)
-->; ALTER ENDPOINT [TSQL Default TCP]。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
业务需求:限制连接Oracle的IP,检查非法连接,降低数据库安全风险。
业务实施:修改oracle安装目录下的配置文件sqlnet.ora来限制能够连接数据库的IP。
下面以RHL6.4上安装的Oracle 11g R2为例,修改sqlnet.ora配置文件来限制访问IP。
RHL6.4 IP:192.168.40.129;访问PC IP:192.168.40.1。
1.Linux安装Oracle后,发现/XXX/network/admin 没有sqlnet.ora这个配置文件,可以在
/XXX/network/admin/samples找到同名的配置文件说明,并复制到/XXX/network/admin。
2.在/XXX/network/admin下修改配置文件sqlnet.ora。
visqlnet.ora
添加
#需要设置参数为YES才能激活
tcp.validnode_checking=yes
#允许访问IP,建议设置允许访问IP,因为IP地址被随意修改后,excluded_nodes设置#就不起作用了。
tcp.invited_nodes=(192.168.40.1)
#不允许访问IP,当参数TCP.INVITED_NODES和TCP.EXCLUDED_NODES设置的地址相#同的时候将覆盖TCP.EXCLUDED_NODES设置。
tcp.excluded_nodes=(192.168.40.2)
3.修改完成后重启监听器生效配置。
这种限制方式是通过监听器来限制的,在服务器上直接连接数据库不受影响。
[oracle@localhost admin]$ lsnrctl reload
验证:
①不允许192.168.40.1
在192.168.40.1登录PL./SQL报错:
②当允许和不允许同时存在IP 192.168.40.1时,IP 192.168.40.1能登录PL/SQL
另附通过建触发器来限制IP用户名及IP段方法:
①限制单用户从单IP登录,下面限制scott用户从客户端的登录
create or replace triggerdisablelogin
after logon on scott.schema
declare
ipaddr VARCHAR2(30);
begin
selectsys_context('userenv', 'ip_address')
intoipaddr
from dual;
ifipaddr = '192.168.40.1' then
raise_application_error('-20001',
'You can notlogin,Please contact administrator'); end if;
enddisablelogin;
②限制IP段登录
create or replace trigger chk_ip_range
after logon on scott.schema
declare
ipaddr VARCHAR2(30);
begin
selectsys_context('userenv', 'ip_address')
intoipaddr
from dual;
ifipaddr like ('192.168.40.%') then
raise_application_error('-20001',
'You can notlogin,Please contact administrator'); end if;
endchk_ip_range;。