oracle限制远程访问

2018-07-04

连接Oracle时报错ORA-12541是我们最常遇到的错误。

 

1、show parameter remote_login_passwordfile

2、alter system set remote_login_passwordfile=none scope=spfile;
alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile;

orapwd file=orapw$ORACLE_SID password=oracle entries=30 force=y

系统参数REMOTE_LOGIN_PASSWORD的设置问题:PFILE文件中有个参数REMOTE_LOGIN_PASSWORD 对passwordfile进行控制:

remote_login_passwordfile =NONE时,停用口令文件验证,Oracle数据库不允许远程SYSDBA/SYSOPER身份登录,无法通过远程进行数据库起停等操作管理;

remote_login_passwordfile =exclusive时,启用口令文件,允许远程登录;

remote_login_passwordfile =shared 时,多个数据库可以共享一个口令文件,但是只可以识别一个用户:SYS;

当口令文件丢失时,用/NOLOG方式登录,通过orapwd重建口令文件来解决。如果口令文件丢失,可以使用orapwd可以重建口令文件。

3、sqlnet.ora禁止sys登录。

tcp.validnode_checking = yes
tcp.invited_nodes = (hostname1, hostname2,ip1,ip2)
tcp.excluded_nodes = (10.103.11.17,hostname1,hostname2)
excluded_nodes与invited_nodes为互斥方式,要么使用前者,要么使用后者
如果tcp.invited_nodes与tcp.excluded_nodes都存在,则tcp.invited_nodes优先

4、SQLNET.AUTHENTICATION_SERVICES = (none)

不允许通过os系统用户登录数据库,需要提供用户名及密码;
默认情况下Unix/Linux下的sqlnet.ora文件是没有SQLNET.AUTHENTICATION_SERVICES参数的,此时是操作系统验证和Oracle密码验证并存。

加上SQLNET.AUTHENTICATION_SERVICES这个参数后,不管SQLNET.AUTHENTICATION_SERVICES设置为NONE还是NTS还是(NONE,NTS),都是基于Oracle密码验证。

5、通过系统设置防火墙限制访问1521端口

分类:数据库 | 标签: |

相关日志

评论被关闭!