看見csdn的oracle技術版塊有人提出關於dba和sysdba的一些困惑,這裡詳細的介紹一下兩者的區別。
dba是oracle裡的一種物件,role 和user一樣,是實實在在存在在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』;
no rows selected
2. grant dba 和grant sysdba的差別
dba是正真的role,所以grant後在dba_role_privs裡有記錄,而revoke後就沒有了
sql> grant dba to testuser;
sql> select * from dba_role_privs where grantee = 『testuser』;
grantee granted_role adm def
—————————— —————————— — —
testuser resource no yes
testuser connect no yes
testuser dba no yes
sql> revoke dba from testuser;
sql> select * from dba_role_privs where grantee = 『testuser』;
grantee granted_role adm def
—————————— —————————— — —
testuser resource no yes
testuser connect no yes
對於sysdba是不會出現這個情況的,因為他不是正真的role
sql> grant sysdba to testuser;
sql> select * from dba_role_privs where grantee = 『testuser』;
grantee granted_role adm def
—————————— —————————— — —
testuser resource no yes
testuser connect no yes
那麼這個是sysdba是這麼記錄的叻,
我在乙個文章和帖子裡對對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後,在這裡就多了一條
下面我們revoke一下,再來看
sql> revoke sysdba from testuser;
sql> select * from v$pwfile_users;
username sysdb sysop
—————————— —– —–
sys true true
system true false
沒有叻。
所以在這裡dba和sysdba是根本不同概念了。
有關sysdba登入的解釋可以檢視帖子
Oracle中sysdba和dba的區別
sysdba不是許可權,當使用者以sysdba身份登陸資料庫時,登陸使用者都會變成sys。oracle ora11g sqlplus ogg4o ogg4o as sysdba sql show user user is sys sysdba身份登陸可以開啟,關閉資料庫,建立spfile,對資料庫進...
Oracle dba和sysdba的區別
size large 之前老是把dba和sysdba混為一體,今天看到論壇在討論兩者的區別,特記錄如下 sysdba不是許可權,當使用者以sysdba身份登陸資料庫時,登陸使用者都會變成sys。sysdba身份登陸可以開啟,關閉資料庫,建立spfile,對資料庫進行恢復操作等,而這些是dba角色無法...
sysdba進行匯出和匯入
sysdba進行匯出和匯入 我們在一些相關的書籍或是網上的相關資料對oracle exp備份 匯出 匯入備份 使用sysdba進行匯出和匯入的實際操作步驟都有相關的介紹,以下的文章就對oracle exp備份的實際操作步驟的本人的 1.命令列方式 a windows平台 c exp as sysdb...