標籤:
上篇我們講解了建立使用者以及基本的授權問題,下面我們來講解許可權包括對象許可權和系統許可權。
其實上節課我們講解就是系統的許可權,系統許可權就是一些建立表了,資料表空間等等的系統的許可權。
1. 系統許可權
那麼哪些許可權是屬於系統許可權的呢?
上篇文章中我們已經提到了:
2. 對象許可權
不同的使用者擁有不同的表,那麼如何讓不同的使用者可以訪問彼此的表,這個許可權就涉及到了對象的許可權。
同上篇文章,用系統使用者登入建立二個使用者,並且用建立的使用者進行登陸,並且將建立許可權以及建立資料表空間以及建立表的許可權授予給他們;那麼他們之前是否是可以互相訪問的呢?
不寫liyifeng這個使用者之前是訪問不了,在oracle中每一個表都是屬於一個固定的使用者,如果直接寫表明,系統預設是liyfeng的表,但是這張表在zhonghanliang中是不存在的
即使加上了liyifeng還是不存在,不是不存在,是沒有許可權,在oracle中各個使用者是隔離開的,彼此之前不能訪問資料。
所以這就涉及到了對象之間的授權。
但是系統管理員是有許可權對任何的表進行訪問的
訪問出現未選定的行,原因在於即使插入了資料但是未進行提交;oracle資料庫不同於sql以及mysql,如果不進行commit提交,那麼只是存在記憶體中,並沒有寫進去資料庫。故而我們有的時候查不到資料在於沒有將資料進行commit提交。
如何讓使用者zhonghanliang可以訪問liyifeng的表,只要讓系統管理員把查詢的許可權授予給zhonghanliang即可。
? 查詢許可權
此時zhonghanliang是可以訪問的
? 插入許可權
此時zhonghanliang使用者是可以進行插入的
記得commit提交。此時查詢會有兩條資料,3是剛剛插入的資料
? 授予所有的許可權
? 撤銷所有的許可權
此外我們還可以設定列的許可權;具體的示範我們不再在命令視窗中進行示範了,總結的如:
授權不用提交,但是插入等等需要提交,就是插入,更新和刪除,是需要寫提交的。
3. 小結
上面講述了對象之前的彼此的訪問,也就是對象的許可權,其實許可權是可以傳遞的,我們上面的許可權都是系統管理員在進行各個使用者的授予的,其實也可以在對象之前進行傳遞,也就是許可權傳遞,比如說系統管理員把許可權給了A,A可以再給B,操作其實很簡單(授權的時候加上with admin option即可),這裡不再做詳細的闡述,oracle知識很多,學習仍在繼續。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Oracle成長點點滴滴(3)— 許可權管理