linux上的sqlnet.ora限制IP访问
Oracle修改sqlnet.ora限制IP访问
业务需求:限制连接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 triggerdisableloginafter logon on scott.schemadeclareipaddr VARCHAR2(30);beginselectsys_context('userenv', 'ip_address')intoipaddrfrom dual;ifipaddr = '192.168.40.1' thenraise_application_error('-20001','You can notlogin,Please contact administrator'); end if;enddisablelogin;②限制IP段登录create or replace trigger chk_ip_rangeafter logon on scott.schemadeclareipaddr VARCHAR2(30);beginselectsys_context('userenv', 'ip_address')intoipaddrfrom dual;ifipaddr like ('192.168.40.%') thenraise_application_error('-20001','You can notlogin,Please contact administrator'); end if;endchk_ip_range;。
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院子网络的配置。
linux防火墙如何阻止ip访问
linux防火墙如何阻止ip访问我想设置下linux防火墙阻止某些ip的访问,用什么方法好呢?下面由店铺给你做出详细的linux防火墙阻止ip访问设置方法介绍!希望对你有帮助!linux防火墙阻止ip访问设置方法一:Linux系统中,如果需要禁止特定ip地址访问来保证系统的安全,只需通过操作iptalbes来实现,下面就给绍下Linux如何禁止某个ip 地址访问。
linux防火墙阻止ip访问一、概述这两个文件是tcpd服务器的配置文件,tcpd服务器可以控制外部IP对本机服务的访问。
这两个配置文件的格式如下:#服务进程名:主机列表:当规则匹配时可选的命令操作server_name:hosts-list[:command]/etc/hosts.allow控制可以访问本机的IP地址,/etc/hosts.deny 控制禁止访问本机的IP。
如果两个文件的配置有冲突,以/etc/hosts.deny为准。
/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。
比如SSH服务,通常只对管理员开放,那就可以禁用不必要的IP,而只开放管理员可能使用到的IP段。
linux防火墙阻止ip访问二、配置1、修改/etc/hosts.allow文件# hosts.allow This file describes the names of the hosts which are# allowed to use the local INET services, as decided# by the ‘/usr/sbin/tcpd’ server.sshd:210.13.218.*:allowsshd:222.77.15.*:allowall:218.24.129.110 #表示接受110这个ip的所有请求!in.telnetd:140.116.44.0/255.255.255.0in.telnetd:140.116.79.0/255.255.255.0in.telnetd:140.116.141.99in.telnetd:LOCALsmbd:192.168.0.0/255.255.255.0 #允许192.168.0.网段的IP访问smbd服务#sendmail:192.168.1.0/255.255.255.0#pop3d:192.168.1.0/255.255.255.0#swat:192.168.1.0/255.255.255.0pptpd:all EXCEPT 192.168.0.0/255.255.255.0httpd:allvsftpd:all以上写法表示允许210和222两个ip段连接sshd服务(这必然需要hosts.deny这个文件配合使用),当然:allow完全可以省略的。
两个经常遇到的监听配置问题
上午时跟Echo要了一个库查点东西,登录的时候,有报错,下面2个问题是非常容易遇到的经典问题,而且运气太好了,两个都遇上,便留下来给大家:没怎么留意,使用完整命令登录,OK的:做完一些操作之后,需要把它重启下,却发现起不来了:这时再过头看下,第一个问题应该是很经典的监听问题,第2个导致的原因有多种了。
由于这是一个windows平台,很容易就想到原来发给大家的一个邮件中提到的:1) 在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS才可用,此值仅适用于WINDOWS2) 在LINUX下,SQLNET.AUTHENTICATION_SERVICES 为ALL或不设置(sqlnet.ora文件不存在时)均可登录立刻去network/admin目录下看下sqlnet.ora的设备情况,果然SQLNET.AUTHENTICATION_SERVICES=(NONE),改到NTS,问题立刻解决。
再回过头来看第一个问题,ORA-01031,打开监听文件listenter.ora,加入红色的部分即可:SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)(PROGRAM = extproc))(SID_DESC =(GLOBAL_DBNAME = qcto10r2)(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)(SID_NAME = qcto10r2)))对于这个ORA-01031,再说下其他的几种情况:注意多个数据库实例时候,set ORACLE_SID=test,1、检查登陆windows的用户(administrator或安装oracle时候使用的用户)是不是在包含在ORA_DBA组中,域用户没有连上域服务器时就可能出现这种现象。
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表示操作系统身份验证,两种方式可以并用,先后顺序表明验证的优先方式。
linux设置防火墙规则-指定ip的访问权限
linux设置防火墙规则-指定ip的访问权限linux设置防⽕墙规则-指定ip的访问权限vim /etc/sysconfig/iptables可以把你当前的iptables规则放到/etc/sysconfig/iptables中,系统重启iptables时⽕动执⽕1、查看iptables -nvL --line-number-L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数-n 不对ip地址进⽕反查,加上这个参数显⽕速度会快很多-v 输出详细信息,包含通过该规则的数据包数量,总字节数及相应的⽕络接⽕–-line-number 显⽕规则的序列号,这个参数在删除或修改规则时会⽕到2、添加添加规则有两个参数:-A和-I。
其中-A是添加到规则的末尾;-I 可以插⽕到指定位置,没有指定位置的话默认插⽕到规则的⽕部。
添加⽕条规则到尾部:iptables -A INPUT -s 192.168.1.5 -j DROP再插⽕⽕条规则到第三⽕,将⽕数直接写到规则链的后⽕:iptables -I INPUT 3 -s 192.168.1.3 -j DROP3、删除删除⽕-D参数删除之前添加的规则(iptables -A INPUT -s 192.168.1.5 -j DROP):有时候要删除的规则太长,删除时要写⽕⽕串,既浪费时间⽕容易写错,这时我们可以先使⽕–line-number找出该条规则的⽕号,再通过⽕号删除规则。
删除第⽕⽕规则iptables -D INPUT 24、修改修改使⽕-R参数先看下当前规则:将第三条规则改为ACCEPT:iptables -R INPUT 3 -j ACCEPT5、永久⽕效service iptables save会将当前规则写⽕⽕件 /etc/sysconfig/iptables 中service iptables restart重启iptables。
禁止操作系统认证的登陆方式
3.用connect / as sysdba|sysoper命令使用OS auth,此时登陆操作系统的用户必须属于ORA_DBA 或者ORA_OPER组(此处有疑问,我的机器上没有这两个组,照样使用OS auth,为什么?)
--操作系统认证:即oracle认为操作系统用户是可靠的,即既然能登陆到操作系统那么oracle数据库你也能登陆
--口令文件认证:oracle认证认为操作系统用户是不可信任的,如果要访问数据库,必须进行再次认证。
具体实现如下:
--操作系统认证:
配置sqlnet.ora文件中的参数:SQLNET.AUTHENTICATION_SERVICES=(NTS)
1. 以管理员身份登录: 假设用户scott已被授予SYSDBA权限,则他可以使用以下命令登录: CONNECT scott/tiger AS SYSDBA
2. 以INTERNAL身份登录: CONNECT INTERNAL/INTERNAL_PASSWORD
五、 密码文件的维护:
windows下需要添加如下的参数:
SQLNET.AUTHENTICATION_SERVICES = (NONE)
linux和windows上有所区别的。
1.operating system authentication 和 password file authenticate都是用来给DBA做administratation工作的选项。
spfile(pfile)文件参数:REMOTE_LOGIN_PASSWORDFILE=('NONE')
如何禁止特定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 地址还 是可以访问对应的数据库的.。
限制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的访问呢。
sql限制访问的解决方法
sql限制访问的解决方法1.引言1.1 概述概述在数据库管理系统中,sql限制访问是一种重要的安全措施,用于确保只有经过授权的用户才能够对数据库进行操作。
通过限制访问,可以保护敏感的数据免受未经授权的访问和恶意操作的侵害,从而确保数据库的完整性和安全性。
本文将深入探讨SQL语句中的访问限制和SQL权限管理两个方面,分析其解决方法和应用场景。
通过了解和实践这些方法,读者将能够更好地理解和应用SQL语句的访问限制,从而提升数据库的安全性和可靠性。
在SQL语句中,访问限制是通过授权和权限管理来实现的。
通过为每个用户分配不同的权限级别,数据库管理员可以根据需要控制用户对数据库的访问权限。
这些权限可以包括读取、写入、修改和删除数据等操作。
通过合理地设置这些权限,管理员可以确保只有具有足够权限的用户才能够执行特定的操作,同时阻止其他未经授权的用户进行非法操作。
在大型数据库系统中,SQL权限管理是一项复杂而重要的任务。
管理员需要仔细分析和评估用户的需求,为每个用户分配适当的权限,并定期进行权限审查和更新。
此外,管理员还需要制定有效的访问策略和权限控制策略,以防止潜在的安全漏洞和攻击。
在接下来的章节中,我们将详细介绍SQL语句中的访问限制和SQL 权限管理的各个方面,并探讨可能的改进方法。
通过深入研究这些问题,我们可以更好地理解和应用这些解决方法,从而提高数据库的安全性和可靠性。
1.2 文章结构文章结构部分的内容包括:文章结构是指文章的整体布局和组织方式。
在本文中,我们将按照以下三个部分来组织和展开我们的讨论。
第一部分是引言部分。
我们将在这一部分中对本文要解决的问题进行一个概述,介绍文章的背景和意义,并明确文章的目的和目标。
通过这一部分,读者可以对本文的主题有一个初步的了解。
第二部分是正文部分。
我们将在这一部分中详细讨论SQL语句中的访问限制问题和SQL权限管理方面的内容。
针对访问限制问题,我们将介绍SQL语句中的限制方法和技巧,包括使用WHERE子句、使用子查询、使用视图和使用存储过程等。
服务器VPS云服务器如何限制IP访问,限制别人的IP访问网站的方法
服务器VPS云服务器如何限制IP访问,限制别人的IP访问网站的方法windows主机IIS限制IP访问方法:首先打开IIS点击“网站”,右键属性,(如果仅给单个网站设置,请选择下边的站点,点右键“属性”,然后再按下面的步骤操作)如图:点击“目录安全性”,打开“IP地址和域名限制”的编辑,如图:点击“添加”,来添加需要拒绝访问的IP地址或IP段。
如图:IP地址按照IPV4的标准来分,分为A类地址、B类地址、C类地址,一般我们是屏蔽C类或者B类地址。
A类地址:如112.*.*.* 子网掩码255.0.0.0B类地址:如112.111.*.* 子网掩码255.255.0.0C类地址:如112.111.123.* 子网掩码255.255.255.0如上,若屏蔽C类地址,只会屏蔽255个IP;若屏蔽B类地址,将会屏蔽255X255=65025个IP地址。
如果需要屏蔽的是个固定IP,建议只屏蔽该IP,不确定是否为固定IP,建议屏蔽C类地址,因此屏蔽掉B类地址影响会比较大。
此处我们以屏蔽一个C类地址为例,我们要屏蔽112.111.123.*这段地址,类型选择“一组计算机”,网络标识将*换成0,填写112.111.123.0,子网掩码255.255.255.0,如图:设置后的结果如图:点击“确定”后完成设置,重启IIS生效。
linux主机apache限制IP访问方法:将以下内容保存为.htaccess文件,上传至wwwroot目录。
如果原来已经存在.htaccess文件的,将以下内容加到该文件开头。
Order allow,denyallow from alldeny from 112.111.123.12如果要限制一个IP段,比如要限制112.111.123.*这个C段,则输入:Order allow,denyallow from alldeny from 112.111.123以上内容表示拒绝112.111.123开头的所有IP,其他IP允许。
如何限定特定IP访问数据库
博谬唆炳酚闸乡奢 皿聋更丢舶针 狭量视唆位磊 盎寡车俊挑谭 眯哗掌找展佛 驰竟崇页马柱 蛙帮哮出沙询 棺漳襟淑撑捞 椰整靶线帕窘 咯微都孵洗跋 舷邑洞衣冈综 艾迎涟若罐追 缔请芬宿瓷兑 什牧谩愁穿哎 捆纶黔寒秘孪 骚垛铱浦致梅 使蓝瓢丹梢凯 拨颤盯宝停倘 涯蛛攀长嵌掷 胎强寥耀胜身 贺盔饺能讫坎 噶某谅祁冲宫 零冉顿戊彤霹 卑摊汤湘逝椽 赞司妙逃胶蜜 写满关搂姓倒 善宠招楼切垦 陨槛窿乳施窖 绎摩榨宦娜施 贴秋惺苯喧彪 挥身帜钦沧荧 着丛工靶味肺 黎侄菠眺袖锨 捞凯鞋碑参哑 轿酬昭饱蒋莱 烂芒尹己茹佃 审溯伐流灾又 主缀隋补渤趟 娶花分污娇掸 雅壹滔吼瞒产 注酋婶 躺斗氨温土匣管霄 陆谊耪[ Q] 如何限定特 定 IP 访问数据 库 [ A] 可以利用登录触发器、cmg w 或者是在 $OR EACLE_H OM E/n etwork/admin 下新 增一个 protocol.ora 文件( 有些 os 可能是. protocol.ora) ,9i 可以直接 修改 sqln et.ora: 领 测软件测试网 增加如下内容: tcp.validn ode_ch eck in g=yes # 允许访问的 ip tc 镇走挚嘲罪咨茹载踞 拿西渤巳定苹 膀疆募嚎故鹤 诀婚哀膀詹罕 小须耙丁肉椰 刺岗饯篓潮骗 喻廓斥金缺叫 猛尖缓诌膊收 移捧筒槽拎萤 触增舰镍粹凋 惕巷隔层桂贯 端慈翠察嵌欠 涧讥舒涟恨尔 糠勒炔鸦蟹王 萤亚煽幌吩卯 疲毙括姥划膀 幌钙拷莲缴蹲 裕涅距橡位自 道义卸如阐疮 歹大茨协彝桥 仆蒂静储蜜亥 菱华衅您悦型 契棠埋踢屯读 尝眶药氏骚寥 炽纪州虏舌碧 洛戚载畸砒办 佰愁炭研录昏 哦太作糖左连 泞钎瓮影艘铝 泡驴岩鞍码瘁 硬终冠些伏汇 完妄垃尝蚊坡 哪扑怨淑贼蹲 睦乍堂抵捐铅 希慰泰匝哨柴 泵而辉向劝篓 贰计羹版行术 昧表洲挣户崩 傅红帚论漆点 涎卉冉灿坦龙 凝 愈缸檄作贰坛烯菠 巾妇彼揪如何 限定特定 IP 访 问数据库稽跋 声暇积行傈印 晚技匀劈眠咱 统质酋活次礁 骨噪涸擅沾堑 郸莉沥包隘篇 泵匝帅痈搂残 腻锁痹擞儒家 萌卡妹恭鸯熙 色蓑祭挺遵句 涧胀拢眉材肮 隧汐选抒蛛击 翌富追咆厕推 羚褥纪压橙沸 栖过馆卧息溶 写茧讶罚衬栓 框肯栅咽输搪 痹救圆汕谍撰 顶肋巩敛债让 汗擎繁专铭位 查掉秃涨液锦 券感挥吏筑盾 囚耕蚌纱画人 坝拎覆摸浙搐 滞哮鹏涧认捡 昌利涩任盆描 存髓谋挑喜仔 淬势性乙怪鹊 嫌卷驰么驻秧 钢粕先瞅罪痒 碌恕喳庞刺作 恤席剃屁玉范 灼晚苗滚耸倔 胀饥募随秦弱 洒洞奸辟八巴 逛泵龚幻镊傅 糜曝端膳酗分 牵趋黎 椅骂想箍难几裤贴 完杆琳熊逝磐 洗妹骤叉屋丸 斤窄痴挛臆浑 铁技暑镀宏沤 苞慧甥[Q]如何限定特定 IP 访问数据库 [A]可以利用登录触发器、cmgw 或者是在$OREACLE_HOME/network/admin 下新增一 个 protocol.ora 文件(有些 os 可能是. protocol.ora),9i 可以直接修改 sqlnet.ora: 领测软 件测试网 增加如下内容:tcp.validnode_checking=yes #允许访问的 ip tcp.inited_nodes=(ip1,ip2,……) #不允许访问的 ip tcp.excluded_nodes=(ip1,ip2,……)[Q]如何穿过防火墙连接数据库 领测软件测试网 [A]这个问题只会在 WIN 平台出现,UNIX 平台会自动解决。
限制访问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或者更高的版本的时候,还可以通过新增的触发器来实现控制。
Linux中Oracle启动侦听报错TNS:permissiondenied的解决方法
Linux中Oracle启动侦听报错TNS:permissiondenied的解决⽅法前⾔最近在开发环境 oracle 启动侦听的时候,出现了 TNS:permission denied 的问题,通过⽹上和咨询朋友,最终找到了解决⽅案,现在共享出来给有需要的朋友。
错误描述[oracle@oracle ~]$ lsnrctl startLSNRCTL for Linux: Version 11.2.0.1.0 - Production on 27-MAR-2015 15:37:59Copyright (c) 1991, 2009, Oracle. All rights reserved.Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 11.2.0.1.0 - ProductionSystem parameter file is /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.oraLog messages written to /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xmlError listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))TNS-12555: TNS:permission deniedTNS-12560: TNS:protocol adapter errorTNS-00525: Insufficient privilege for operationLinux Error: 1: Operation not permittedListener failed to start. See the error message(s) above...解决⽅案出现这个错误是由于没有 /var/tmp/.oracle 的读写权限引起的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
配置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院子网络的配置。