昨天我們提的如何建立一個使用者,給予系統權限與資料庫物件權限。

今天這篇稍微說明使用GRANT、ROVAKE指令與ROLE的使用。


GRANT and ROVAKE:

我們能夠使用GRANT指令授予使用者權限,也能使用ROVAKE指令回收使用者的權限:

ADMIN OPTION能用來授予與回收系統權限,而GRANT OPTION授予資料庫物件權限。

兩者的差別在於,前者授予的權限,不會因為中間授予者被的權限被回收,而導致終端權限授予者權限被回收;

而後者會因為中權限授予者的權限被回收,而導致終端權限受權者權限被回收。

舉個例子:

系統管理者給user A CREATE TABLE的權限,userA又給user B CREATE table權限,

今天系統管理者把user A的權限回收後,不影響user B CREATE table的權限。

反之,

user A給予user B select employee table的權限,user B 也給予user C select employee table的權限,一但user A回收user B的權限,user C權限也一樣會被回收。

語法:
GRANT privileges ON database_object TO user

ROVAKE privileges ON database_object TO user



附註:系統權限包含比較全域或CREATE..等等權限,而資料庫物件權限包含select,update..等物件指令。



ROLE:

role可以方我們管理權限,跨系統權限與物件權限,讓權限管理更有彈性更方便。

我們下面來建立Role與指定role給使用者。



一、建立role

1.開啟Enterprise Manager,點選伺服器,角色。



2.進入角色,可以看到角色清單。我們點選右邊建立。



3.進入建立角色畫面,輸入角色名稱。認證部份可以設定密碼,我們這次操作不設定。



4.點選角色。角色可以授予角色的權限,我們可以點選右邊編輯清單按鈕。



5.編輯清單部分,可以選取目前可用的角色給新建立的角色。



6.點選系統權限,可以看見預設沒有任何系統權限。我們可以點選右邊編輯清單新增系統權限。



7.點選編輯清單後,可以選取可用的系統權限給目前的角色。選取完成後,我們點選右邊確定按鈕



8.在物件權限,我們可以點選右邊選取物件類型的下拉選單,點選右邊新增按鈕新增。

我們點選表格後,點選新增。



9.進入新增表格物件權限,可以看見選取表格物件,點選右邊按鈕即跳出新視窗,可以進行查詢與選取表格物件。

下方可以選取可用的權限。



10.我們選取HR綱要,點選執行;然後選擇job與job_history表格,點選確定。



11.我們選取全部可用的權限,點選確定,完成物件權限。



12.點選用戶群組權限,可以看見預設沒有認和群組權限,我們可以點選編輯清單新增群組權限。



13.進入清單,可以選取可用的用戶群組。



14.完成以上設定,選取確定後`完成新增角色。




二、指定role給使用者

1.點選伺服器,點選角色



2.進入編輯後,我們點選角色,然後點選右邊編輯清單



3.我們選取尚一篇新增的durantest角色,點選編輯。



4.我們選取剛剛建立的角色duranrole角色,點選右邊確定



5.加入後,點選右邊套用,完成指定角色給使用者。



6.我們開啟Sql developer測試



7.選擇HR資料表,即可以看到該資料表內容。完成整個流程



--

11:57 平安上壘 !!