Oracle 身份验证方式有如下几种:
一、操作系统身份验证
这种身份验证说白了就是通过操作系统用户登录数据库,但是有一个前提不能忽视,即该操作系统用户必须为dba(Linux系统)或ORA_DBA组成员。说的更直接一点,也就是oracle用户了,呵呵!在Oracle中通过两个参数决定用户的身份验证是否为操作系统身份验证,这两个参数说明如下:
1、SQLNET.AUTHENTICATION_SERVICES,该参数的取值为:
2、remote_login_passwordfile,该参数为数据库初始化参数,其取值为:
登录限制:只能在本地使用。
二、口令文件身份验证
口令文件身份验证就是通过记录在口令文件中的用户账号和密码实现登录数据库的操作,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
- 操作系统身份验证
- 口令文件验证
- 口令身份验证
- 外部身份验证
- 全局身份验证
一、操作系统身份验证
这种身份验证说白了就是通过操作系统用户登录数据库,但是有一个前提不能忽视,即该操作系统用户必须为dba(Linux系统)或ORA_DBA组成员。说的更直接一点,也就是oracle用户了,呵呵!在Oracle中通过两个参数决定用户的身份验证是否为操作系统身份验证,这两个参数说明如下:
1、SQLNET.AUTHENTICATION_SERVICES,该参数的取值为:
- NONE:屏蔽操作系统身份验证
- NTS:特指windows环境中的操作系统身份验证
- ALL:两种方式皆可。
2、remote_login_passwordfile,该参数为数据库初始化参数,其取值为:
- NONE:不使用口令文件。
- EXCLUSIVE:只有一个实例能使用密码文件。
- SHARED:可以有多个实例使用密码文件,但是口令文件只能识别SYS用户。
登录限制:只能在本地使用。
二、口令文件身份验证
口令文件身份验证就是通过记录在口令文件中的用户账号和密码实现登录数据库的操作,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/