dba和sysdba的區別(轉自“三十而立專欄”部落格)
dba是實實在在存在在Oracle裡的一個角色(屋裡物件),而sysdba則指的是一種邏輯概念上的操作物件,在Oracle資料裡並不存在。
所以說這兩個概念是完全不同的。dba是一種role對應的是對Oracle例項裡物件的操作許可權的集合,而sysdba是概念上的role是一種登入認證時的身份標識而已。
下面我們通過詳細的例項來看看他們的區別
1. 物理上的role dba 是可以在資料字典裡查到的
SQL> select * from dba_roles where upper(role) ='DBA';
ROLE PASSWORD
------------------------------ --------
DBA NO
而sysdba是邏輯概念上的role,在資料字典裡是查不到的
SQL> select * from dba_roles where upper(role) ='SYSDBA';
未選定行
2. grant dba 和grant sysdba的差別
因為dba是oracle的一種role,所以和oracle其他普通的角色一樣,在grant後在角色許可權表dba_role_privs可以查到,revoke後就沒有了。
SQL> grant dba to test;
授權成功。
SQL> select * from dba_role_privs where grantee='TEST';
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
TEST RESOURCE NO YES
TEST DBA NO YES
SQL> revoke dba from test;
撤銷成功。
SQL> select * from dba_role_privs where grantee='TEST';
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
TEST RESOURCE NO YES
對於sysdba是不會出現這個情況的,因為他不是正真的role
SQL> grant sysdba to test;
授權成功。
SQL> select * from dba_role_privs where grantee='TEST';
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
TEST RESOURCE NO YES
那麼這個是sysdba是怎麼記錄的叻,
對了,sysdba是登入時候需要的他是和remote_login_passwordfile關聯的
我們可以查詢v$pwfile_users;
如下:
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
—————————— —– —–
SYS TRUE TRUE
SYSTEM TRUE FALSE
TESTUSER TRUE FALSE
當你grant sysdba後,在這裡就多了一條
SQL> grant sysdba to test;
授權成功。
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
TEST TRUE FALSE
下面我們revoke一下,再來看
SQL> revoke sysdba from test;
撤銷成功。
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
沒有叻。
所以在這裡dba和sysdba是根本不同概念了。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/inthirties/archive/2009/05/09/4159489.aspx
[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24496749/viewspace-1043402/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- dba和sysdba的區別
- sysdba和dba的區別
- Oracle dba角色和sysdba的區別Oracle
- sysdba,dba,sysoper的區別
- 關於sysdba,sysoper,dba的區別
- DBA,SYSDBA,SYSOPER三者的區別
- SYS,SYSTEM,DBA,SYSDBA,SYSOPER的區別與聯絡
- Eastmount部落格導讀:專欄系統分類和部落格歸納總結AST
- 開啟ITPUB部落格專欄技能!
- sysdba,sysoper,normal的區別ORM
- normal 、sysdba、 sysoper的區別ORM
- Oracle DBA 和Oracle EBS DBA 的最大區別Oracle
- system sys,sysoper sysdba 的區別
- 【Privilege】SYSOPER和SYSDBA特權的區別與聯絡
- dba_tables 和 dba_segments 表中 blocks 的區別BloC
- Django專案中Ajax的應用,部落格分類文章閱讀,左右欄目自動更新Django
- dba_data_files和v$datafile的區別
- normal、sysdba、sysoper登陸oracle的區別理解ORMOracle
- 極簡單欄部落格系統
- 【PHP】英文部落格專欄PHP快速入門個人筆記PHP筆記
- Vue部落格專案Vue
- c#之重寫與過載的區別與聯絡_摘自.NEt專家部落格!C#
- 字串分隔 (抄自 atgc的部落格)字串GC
- DBA_TAB_COLUMNS和DBA_TAB_COLS 兩個檢視的區別
- 嚴格模式和非嚴格模式區別模式
- 批量匯出 CSDN 部落格並轉為 hexo 部落格風格Hexo
- Oracle dba_objects和all_objects 最大的區別OracleObject
- dba_segments/dba_extents/dba_tables區別
- Arraylist與Vector的區別 - Java那些事兒專欄Java
- delete table 和 truncate table - 型別安全的心 - 部落格園delete型別
- 靜態網格體和骨架網格體的區別
- Thinkphp+Bootstrap的自適應部落格PHPboot
- select * 和 select 所有欄位的區別
- LOB欄位EMPTY_LOB和NULL的區別Null
- 個人開源專案:MyCms,專注自媒體部落格CMS系統
- DBA的性格(轉自老白的dba優化手記)優化
- C#中的屬性和欄位的區別C#
- 【轉】mysql 和 redis的區別MySqlRedis