详细讲解Oracle数据库管理员认证方法
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的管理权限。
(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.
3.关于REMOTE_LOGIN_ PASSWORDFILE
None: 使得oracle不使用密码文件,只能使用OS认证,不允许通过不安全网络进行远程管理。
Exclusive: 可以使用唯一的密码文件,但只限一个instance 。密码文件中可以包括除了sys用户的其他用户。
Shared: 可以在多个数据库上使用共享的密码文件。但是密码文件中只能包含sys用户。通常用于一个dba管理多个数据库的时候。
4.V$PWFILE_USERS
使用该视图查看密码文件中的member
5.非管理员级别用户的OS认证方法:
关键字:
os_authent_prefix=ops$
注意:
如果用户名为donny.chen,需要用引号。这个时候要用大写'OPS$DONNY.CHEN',否则可以
SQL> create user ops$oracle identified externally
2 default tablespace users;
conn /
winnt下面需要注意的就是在HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0/OSAUTH_PREFIX_DOMAIN项。如果为没有或者为true,表示建用户时需要这样'OPS$主机名用户名'。
所以通常将OSAUTH_PREFIX_DOMAIN改称false。