In my opinion, SYSDBA and SYSOPER are system privileges.
You can find them by
select * from system_privilege_map where name like 'SYS%'As I know
1. schema: SYS, SYSTEM, SYSMAN
2. privilege: SYSDBA, SYSOPER
3. role: DBA
Note: The DBA role does not include the SYSDBA or SYSOPER system privileges.
-------------
sysdba、sysoper是一種很特殊的權限,可以啟動與關閉、創建與刪除數據庫等,不包含在dba權限之內的。
兩個權限是超越數據庫的權限(新建,啟動,關閉數據庫),在數據庫之上,所以dba_roles中沒有(??)。
只要用internal用戶將此權限授給其它的用戶就可以用此用戶加 as sysdba 登錄,可以關閉和啟動數據庫了。并可以進行oracle DBA所不能做的操作。
授權:
SQL> grant sysdba,sysoper to jcat
收回權限:
SQL> revoke sysdba from jcat
查看這兩個權限的擁有情況(需一定的權限,sys就可以看):
SQL> select * from v$pwfile_users
-------------
?
sysdba 擁有最高的系統權限 (sysdba的權限包含所有sysoper的權限)
sysoper主要用來啟動、關閉數據庫
相比之下,SYSDBA比SYSOPER多了兩個權限:
?1)change character set,改變字符集設置;
?2)CREATE DATABASE,創建數據庫。
?
sysoper登陸后用戶是 public
sysdba 登陸后是 sys
可以通過以下方式進行驗證:
SQL> conn test/test as sysoper;
SQL> show user
USER 為"PUBLIC"
?
SQL> conn test/test as sysdba
SQL> show user
USER 為"SYS"
posted on 2006-10-25 15:12
Jcat 閱讀(562)
評論(0) 編輯 收藏 所屬分類:
Database