Oracle管理员的两种认证方法
注意:重要
parameter 中remote_login_passwordfile
1、alter system set remote_login_passwordfile= none scope =spfile;
含义:非密码认证(此时仅os认证 )
2、alter system set remote_login_passwordfile= exclusive scope =spfile;
含义:密码文件认证(此时可 os认证);
network/admin/sqlnet.ora文件中sqlnet.authentication_services
1、sqlnet.authentication_services = NTS 表示OS认证+密码文件认证2种方式均可
2、sqlnet.authentication_services =NONE时 表示仅密码文件认证
1、管理员的权限:
SYSDBA: 默认schema 为SYS
SYSOPER: 默认schema 为 PUBLIC
这两种权限允许用户在数据库没有打开的时候就可以登陆数据库,所以这种权限的控制权在数据库之外。通常这种权限也可以被看做一种允许你对数据库进行某种操作的连接,比如CONNECT / AS SYSDBA
2、两种管理员权限认证方法
(1) Operating system (OS) authentication :操作系统认证
--以下情况使用该方法:
管理远程数据库时,具有安全的网络连接(secure connection)。
管理本地数据库时,想使用OS认证。
--操作步骤:
a.建立一个os系统用户
b.将这个用户加入到OSDBA或者OSOPER的OS组。
c.设置参数REMOTE_LOGIN_PASSWORDFILE=NONE
d.CONNECT / AS SYSDBA
--关于OSDBA和OSOPER组
OSDBA对应: UNIX为dba; WINDOWS为ORA_DBA
OSOPER对应:UNIX为oper; WINDOWS为ORA_OPER
这些用户组在安装数据库的时候手工或者自动创建,这些组的成员以 as sysdba/sysoper 连接数据库后,自动授予sysdba/sysoper的管理权限。
这种OS认证的用户,OS级别有多个用户(只要属于ora_dba即可),但登录到数据库后,都对应SYSDBA用户sys。
(2) Password files :密码文件认证
--以下情况使用该方法:
管理远程数据库时,没有安全的网络连接(secure connection),比如TCP/IP和DECnet协议。
管理本地数据库时,不想使用OS认证。
--操作步骤:
a.使用ORAPWD创建密码文件(其中的password选项是为SYS用户设置的)
b.设置参数REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
c.使用sys用户登陆
d.在数据库中创建用户 create user donny1 identified by donny1;
e. 赋予其SYSDBA/SYSOPER权限
grant sysdba to donny1; 这样就将用户和密码加入到密码文件中。
f.使用自己的密码logon: connect donny1/donny1 as sysdba;
g.OS认证优先于密码文件认证:
只要OS用户属于OSDBA OR OROPER组,并且使用connect as sysdba / sysoper登录,则可以忽略输入的username/password.
总结:也就是已经属于ora_dba的那些用户仍然可以不用输入密码,在数据库中新加的那些被授权的sysdba权限的用户需要出示密码才能登录管理。是2中认证兼容的情况。比较实用。
3、关于REMOTE_LOGIN_ PASSWORDFILE
None:
使得oracle不使用密码文件,只能使用OS认证,不允许通过不安全网络进行远程管理。
Exclusive:
以使用唯一的密码文件,但只限一个instance 。密码文件中可以包括除了sys用户的其他用户。
Shared:
可以在多个数据库上使用共享的密码文件。但是密码文件中只能包含sys用户。通常用于一个dba管理多个数据库的时候。
4、V$PWFILE_USERS
使用该视图查看密码文件中的member