詳細講解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。
