【Privilege】SYSOPER和SYSDBA特權的區別與聯絡

secooler發表於2010-12-20
SYSOPER和SYSDBA只是系統中兩個特殊的系統許可權,不要將其人為地想象得那麼神秘。我們一起來探索一下他們之間的聯絡與區別。

1.登入資料庫的特權
SYSDBA和SYSOPER是比較特殊的兩個許可權,即便資料庫的例項並沒有啟動,以這兩種特權依然能夠登入系統,
1)關閉系統
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

2)分別以SYSDBA和SYSOPER特權登入系統
ora10g@secdb /home/oracle$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on Mon Dec 20 21:39:06 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to an idle instance.

NotConnected@>


ora10g@secdb /home/oracle$ sqlplus / as sysoper

SQL*Plus: Release 10.2.0.3.0 - Production on Mon Dec 20 21:39:34 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to an idle instance.

NotConnected@>

可見,即使資料庫例項並沒有被啟動使用這兩種特權依然可以登入,這就是力量無窮的管理許可權。我就是God,我可以做一切。

如果是普通使用者登入,此時系統將不允許其登入,報錯資訊如下:
ora10g@secdb /home/oracle$ sqlplus sec/sec

SQL*Plus: Release 10.2.0.3.0 - Production on Mon Dec 20 21:41:46 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory


Enter user-name:

2.SYSOPER和SYSDBA特權背後的Schema
1)SYSOPER特權背後的Schema是PUBLIC
sys@ora10g> conn / as sysoper
Connected.
public@ora10g> show user;
USER is "PUBLIC"

2)SYSDBA特權背後的Schema是SYS
public@ora10g> conn / as sysdba
Connected.
sys@ora10g> show user;
USER is "SYS"

3.SYSOPER和SYSDBA特權具有的許可權比較
1)SYSOPER特權具有的許可權
資料庫例項的startup、mount以及資料庫的open;
資料庫例項的shutdown、dismount以及資料庫的close;
資料庫的備份、日誌歸檔和恢復;
建立SPFILE;

2)SYSDBA特權具有的許可權
SYSDBA特權擁有SYSOPER所具有的所有許可權,同時它包含了所有系統許可權。因此,SYSDBA具有真正意義上的God許可權。
SYSDBA特權具有建立和刪除資料庫的權力。

4.使用特權登入的注意事項
1)因為SYSOPER和SYSDBA都屬於特權使用者,處於安全目的不要將這些特權授予給其他普通使用者;
2)同樣出於安全考慮,以“最小許可權”為原則,在完成普通操作時不要使用特權使用者操作。

5.小結
到此,相信大家已經基本上可以達到揭開SYSOPER和SYSDBA特權神秘面紗的目的了。在日常運維過程中,這些特權給我們帶來諸多便利同時也提升了誤操作的風險,我們要做的是:沉著冷靜,頭腦清醒。

Good luck.

secooler
10.12.20

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-682224/,如需轉載,請註明出處,否則將追究法律責任。

相關文章