Oracle的身份验证

Oracle 身份验证方式有如下几种:
  1. 操作系统身份验证
  2. 口令文件验证
  3. 口令身份验证
  4. 外部身份验证
  5. 全局身份验证
前两项技术仅供管理员使用(也是我试图理解的内容),最后一项技术要求使用 LDAP 目录服务器,LDAP 目录服务器是 Oracle Internet Directory(OID),作为 Oracle 应用服务器的一部分发布。

一、操作系统身份验证
这种身份验证说白了就是通过操作系统用户登录数据库,但是有一个前提不能忽视,即该操作系统用户必须为dba(Linux系统)或ORA_DBA组成员。说的更直接一点,也就是oracle用户了,呵呵!在Oracle中通过两个参数决定用户的身份验证是否为操作系统身份验证,这两个参数说明如下:
1、SQLNET.AUTHENTICATION_SERVICES
,该参数的取值为:
  • NONE:屏蔽操作系统身份验证
  • NTS:特指windows环境中的操作系统身份验证
  • ALL:两种方式皆可。
注:该参数保存在$ORACLE_HOME/network/admin/sqlnet.ora文件中,如果没有,可以手工创建一个。如果没有配置该参数,oracle默认为操作系统身份验证
2、remote_login_passwordfile,该参数为数据库初始化参数,其取值为:
  • NONE:不使用口令文件。
  • EXCLUSIVE:只有一个实例能使用密码文件。
  • SHARED:可以有多个实例使用密码文件,但是口令文件只能识别SYS用户。
登录方法:conn /as sysdba,conn /as sysoper,sqlplus "sys/abcdefg as sysdba",sqlplus "sys/123456 as sysdba" 等等。
登录限制:只能在本地使用。

二、口令文件身份验证
口令文件身份验证就是通过记录在口令文件中的用户账号和密码实现登录数据库的操作,oracle的口令文件存放位置为:$ORACLE_HOME/dbs/orapwORACLE_SID,该文件可以通过orapwd工具手动创建。
对于口令文件身份验证,我想只要理解了remote_login_passwordfile的exclusive和shared参数值的含义后,那么一切问题就迎刃而解了。那么让我们用以下试验来说明吧!
试验一:
向口令文件中添加一个用户。
SQL> show parameter remote_login_passwordfile
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      EXCLUSIVE
OK,这是Oracle默认值!
接下来查看一下口令文件中的用户数:
SQL> select * from v$pwfile_users;
USERNAME                  SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  FALSE
下面我们来给一个用户授权:
SQL> grant sysdba to eric;
执行完后看看会发生什么变化,再次查询v$pwfile_users视图:
SQL> select * from v$pwfile_users;
USERNAME                   SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  FALSE
ERIC                           TRUE  FALSE FALSE

试验二:
使用口令文件登记用户远程启动数据库。在实验中使用windows登录虚拟机的一个空闲实例,然后启动数据库。
C:\Users\Manganese>sqlplus eric/eric@prac as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 3月 5 21:09:56 2014
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  839282688 bytes
Fixed Size                  2217992 bytes
Variable Size             499124216 bytes
Database Buffers          335544320 bytes
Redo Buffers                2396160 bytes
数据库装载完毕。
数据库已经打开。

实验三:
当remote_login_passwordfile=shared时,向口令文件中添加用户。
SQL> show parameter remote_login_passwordfile
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      SHARED
SQL> grant sysdba to scott;
grant sysdba to scott
*
ERROR at line 1:
ORA-01999: password file cannot be updated in SHARED mode
看吧,报错了,不能添加用户的,我在前面已经做了说明。

三、参考资料
Oracle的官方文档:http://docs.oracle.com/cd/B28359_01/server.111/b28310/dba007.htm#ADMIN10241


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29515435/viewspace-1101881/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29515435/viewspace-1101881/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值