浅论Oracle登录方式


一、Oracle登陆认证管理有两种方式:
1、  操作系统认证方式
2、  口令认证
二、操作系统认证概述及实现方式
1、热身小实验
SQL> --首先我们关闭数据库
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> --下面我们使用sys看看能否登录
SQL> conn /as sysdba
已连接到空闲例程。
SQL> show user
USER 为 "SYS"
SQL> --其实目前我们就是在操作系统登录模式下实现的登录,后面我们在详细论述操作系统登录模式的实现方法
SQL> --我们再来试验一下,我们随便使用一个oracle不存在的用户登录
SQL> conn xiaoming /as sysdba
已连接到空闲例程。
SQL> show user
USER 为 "SYS"
SQL> --通过上面的例子我们可以看出,在操作系统验证登录模式下,任何一个用户都可以使用sysdba的身份登录Oracle,但实际用户还是sys;


2、Windows操作系统下如何实现使用操作系统登录模式
首先在Windows环境下安装Oracle数据库的时候,请使用administrator用户登录操作系统进行操作;
我们需要在$oracle_home(oracle安装主目录下)的\NETWORK\ADMIN目录下找到sqlnet.ora的文件,例如我本机的路径是:
E:\app\neusoft\product\11.2.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora
 
该文件的内容摘要如下:
# sqlnet.oraNetwork Configuration File:E:\app\neusoft\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
#Generated by Oracle configuration tools.
 
# Thisfile 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.
 
AUTHENTICATION_SERVICES= (NTS)

 
DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

内容中#代表注释的含义,注释的翻译是
Sqlnet.ora的配置路径是:E:\app\neusoft\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
这个文件是由配置工具自动生成的
这个文件实际是由netca(NetConfiguration Assistant)生成。但用户在安装时如果选择“仅安装数据库软件”,则这个文件就不会产生
如果想用操作系统验证方式实现登录oracle,则需要做如下设置:SQLNET.AUTHENTICATION_SERVICES= (NTS)
将REMOTE_LOGIN_PASSWORDFILE=NONE,remote_login_passwordfile翻译就是远程登录密码文件,这个参数默认值是exclusive,即排他、独占;
设置语句:SQL> alter system set remote_login_passwordfile=none scope=spfile;
需要制定范围是spfile,语句提交完成后需要重启数据库实例才能生效。
3、unix操作系统下如何实现使用操作系统登录模式
首先sqlnet.ora文件中将SQLNET.AUTHENTICATION_SERVICES=(beq),说明如果这个文件不存在,可以手工创建。其次和windows操作系统一样,
使用SQL>alter system set remote_login_passwordfile=none scope=spfile;将remote_login_passwordfile设置成none
三、口令认证概述及实现方式
1、首先sqlnet.ora文件中修改SQLNET.AUTHENTICATION_SERVICES=(none)
2、sqlplus中执行showparameter remote_login_passwordfile,查看值是否是EXCLUSIVE或SHARED;
3、如果参数remote_login_passwordfile的值为空或NONE,则需要使用语句SQL>alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile; 重启实例生效;
4、使用owdpwd命令语句生成密码文件,其中file要求为安装数据库主目录($oracle_home)下的database文件夹,文件名如果实在unix操作系统环境下则必须以orapw开头+数据库实例名,
如果操作系统为windows环境下,则应该为PWD+数据库实例名.ora,password为给sys用户指定的登录密码,entries为选填项,指拥有sysdba/sysoper权限的用户的最大数量;
格式举例如下:
 orapwd file=E:\app\neusoft\product\11.2.0\dbhome_1\database\orapworclpassword=neusoft entries=5;
5、检查v$pwfile_users视图查看数据库中拥有SYSDBA/SYSOPER权限的用户列表;
6、我们可以使用授权语句将sysdba、sysoper权限赋给任意指定用户:
    GRANT sysdba,sysoper TO system;
    SELECT* FROM V$PWFILE_USERS;

相关内容