oracle操作系统认证和口令文件认证是oracle的两种方式,下面就为您介绍oracle操作系统认证和口令文件认证适用的情况,供您参考。
先总结,后细解:
SQLNET.AUTHENTICATION_SERVICES指$ORACLE_HOME/network/admin/sqlnet.ora配置文件中的参数;
REMOTE_LOGIN_PASSWORDFILE指Oracle的初始化参数,可以在sqlplus里通过show parameter命令查看。
SQLNET.AUTHENTICATION_SERVICES=(NTS)
同时REMOTE_LOGIN_PASSWORDFILE=(’NONE’)
这为OS认证
SQLNET.AUTHENTICATION_SERVICES=(NONE)(或者注释掉了)
同时REMOTE_LOGIN_PASSWORDFILE=(’EXCLUSIVE’)或(’SHARED’)
这为口令文件认证
SQLNET.AUTHENTICATION_SERVICES=(NTS)
同时REMOTE_LOGIN_PASSWORDFILE=(’EXCLUSIVE’)或(’SHARED’)
OS和口令都生效
细解:
1、管理员的权限
SYSDBA: 默认schema 为SYS
SYSOPER: 默认schema 为 PUBLIC
这两种权限允许用户在数据库没有打开的时候就可以登陆数据库,所以这种权限的控制权在数据库之外。通常这种权限也可以被看做一种允许你对数据库进行某种操作的连接,比如CONNECT / AS SYSDBA
SQL> conn /as sysdba
Connected.
SQL> show user
USER is "SYS"
SQL> conn /as sysoper
Connected.
SQL> show user
USER is "PUBLIC"
SQL>
2、两种管理员权限认证方法
1) oracle操作系统认证
--以下情况使用该方法:
管理远程数据库时,具有安全的网络连接(secure connection)。
管理本地数据库时,想使用OS认证。
--操作步骤:
a.建立一个os系统用户
b.将这个用户加入到DBA或者OPER的OS组(注释:在window下,这个默认的组名为ORA_DBA/ORA_OPER);
c.设置参数 REMOTE_LOGIN_PASSWORDFILE=NONE
d.编辑sqlnet.ora文件,增加 SQLNET.AUTHENTICATION_SERVICES= (NTS)
e.CONNECT / AS SYSDBA
--关于OSDBA和OSOPER组
OSDBA对应: UNIX下为DBA; WINDOWS下为ORA_DBA
OSOPER对应:UNIX下为OPER;WINDOWS下为ORA_OPER
这些用户组在安装数据库的时候手工或者自动创建,这些组的成员以 as sysdba/sysoper 连接数据库后,自动授予sysdba/sysoper的管理权限。
2) 口令文件认证
--以下情况使用该方法:
管理远程数据库时,没有安全的网络连接(secure connection),比如TCP/IP和DECnet协议。
管理本地数据库时,不想使用OS认证。
--操作步骤:
a.使用ORAPWD创建密码文件(其中的password选项是为SYS用户设置的)
orapwd file=<filename> password=<password> entries=<users>
b.设置参数 remote_login_passwordfile=EXCLUSIVE
c.使用sys用户登陆
d.在数据库中创建用户 create user study identified by study;
e.赋予其SYSDBA/SYSOPER权限
grant sysdba to study; 这样就将用户和密码加入到密码文件中。
grant sysoper to study;
f.查看密码文件中的用户: select * from v$pwfile_users;
如果没有对应的用户信息,需要重启DB,否则登陆时会提示无权限。
g.使用自己的密码登陆: connect study/study as sysdba;
注意:OS认证优先于密码文件认证,只要OS用户属于OSDBA OR OROPER组,并且使用connect as sysdba / sysoper登录,则可以忽略输入的username/password。
3、关于参数remote_login_passwordfile
None: 使得oracle不使用密码文件,只能使用OS认证,不允许通过不安全网络进行远程管理。
Exclusive: 可以使用***的密码文件,但只限一个数据库。密码文件中可以包括除了sys用户的其他用户。
Shared: 可以在多个数据库上使用共享的密码文件。但是密码文件中只能包含sys用户。通常用于一个dba管理多个数据库的时候。
4、V$PWFILE_USERS使用该视图查看密码文件中的member
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
SQL>
5、非管理员级别用户的OS认证方法关键字:os_authent_prefix
create user donny identified externally;
conn
【编辑推荐】