A-A+

ORACLE数据库中连接方式和密码文件

2014年05月07日 Oracle 评论 84 条 阅读 4,432 次

================数据库的sqlnet.ora文件==============

 

    oracle数据库中有两种连接方式一种是以操作系统方式连接,另一种是以数据库口令文件连接。

    数据库在登录时有由sqlnet.ora这个文件用于配置网络连接时所使用的连接方式等,比如SQLNET.AUTHENTICATION_SERVICES= (NTS),就是说可以以本地操作系统用户认证登录,此外还有none(不允许通过os系统用户登录数据库,需要提供用户名及密码用到口令文件orapworcl),all(允许所有的登录方式)

 

下面是进行的测试:

sqlnet.ora文件路径:$ORACLE_HOME/network/admin/

 

sqlnet.ora的内容:
# sqlnet.ora Network Configuration File: /oracle/app/product/10.2.0.1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

 

SQL> conn  asd/addas as sysdba  (sqlnet是默认状态允许操作系统登录)
Connected.
用户名密码乱填写的也能连接到数据库,现在是操作系统连接的。

 

对sqlnet.ora文件经行修改在sqlnet.ora文件中注释掉原有的语句,后面插入一条语句

 

SQLNET.AUTHENTICATION_SERVICES= (none);
//数据库拒绝操作系统登录,需要提供用户名及密码

 

SQLNET.AUTHENTICATION_SERVICES= (all);
//数据库允许所有登录

 

SQL> conn  asd/addas as sysdba(选择none模式经行登录数据库)
ERROR:
ORA-01031: insufficient privileges
Warning: You are no longer connected to ORACLE.
数据库拒绝了操作系统登录,只有输入正确的用户名密码才能进入数据库。

 

==============orapworcl.ora口令文件==============

orapworcl命名格式为:orapw[sid]
orapworcl.ora文件路径:$ORACLE_HOME/dbs/

 

口令文件在oracle的登录中起到的作用就是验证用户名和密码。把sqlnet.ora的状态设置为none不允许通过os系统用户登录数据库,需要提供用户名及密码。

 

[oracle@localhost dbs]$ rm orapworcl
删除这个口令文件

 

SQL> conn sys/chfan as sysdba(输入正确的用户名和密码)
ERROR:
ORA-01031: insufficient privileges
Warning: You are no longer connected to ORACLE.
连接失败,不足的权限。

 

[oracle@localhost dbs]$ orapwd file=orapworcl password=chfan
重新创建一个口令文件(用此操作可以对口令文件的密码经行修改)

 

SQL> conn sys/chfan as sysdba    
Connected.
登录成功!

原文链接http://blog.sina.com.cn/s/blog_a54bd8b101017rxs.html

给我留言