角色和角色許可權
角色許可權就是將屬於使用者的許可權授予乙個角色。任何許可權都可以授予給乙個角色。授予系統許可權給被授予者必須使用with_admin_option子句,在會話期間通過set role語句授予或撤銷角色許可權。然而,角色許可權不能依靠儲存在sql中的許可權。如果函式、程式、包、觸發器或者方法使用另乙個計畫擁有的物件,那麼就必須直接給物件的擁有者授權,這是因為許可權不會在會話之間改變。
授予和撤銷許可權
給使用者或者角色授予許可權使用grant 語句,grant語句的語法如下:
grant role
(或system privilege
)to user(role,public) with admin option
(可選)
物件許可權被授予 with grant option,
許可權和資料字典
資料字典是oracle儲存有關資料庫結構資訊的地方,資料本身存放在其他地方,資料字典由表和檢視組成。在考試中關於資料字典最容易考的內容是:檢視那一類許可權已經被授予。比如dba_tab_priv包含了使用者授予給另一使用者的物件許可權和在授予時是否帶有with grant otpion子串的資訊。注意dba_tab_priv不僅僅包含了對錶的許可權的關係,他還包括函式、包、佇列等等上的許可權的關係。下表列出了所有的許可權和角色的資料字典檢視:
表: 許可權的資料字典檢視
檢視 作用all_col_privs
表示列上的授權,使用者和public是被授予者
all_col_privs_made
表示列上的授權,使用者是屬主和被授予者
all_col_recd
表示列上的授權,使用者和public是被授予者
all_tab_privs
表示物件上的授權,使用者是public或被授予者或使用者是屬主
all_tab_privs_made
表示物件上的許可權,使用者是屬主或授予者
all_tab_privs_recd
表示物件上的許可權, 使用者是public或被授予者
dba_col_privs
資料庫列上的所有授權
dba_role_privs
顯示已授予使用者或其他角色的角色
dba_sys_privs
已授予使用者或角色的系統許可權
dba_tab_privs
資料庫物件上的所有許可權
role_role_privs
顯示已授予使用者的角色
role_sys_privs
顯示通過角色授予使用者的系統許可權
role_tab_privs
顯示通過角色授予使用者的物件許可權
session_privs
顯示使用者現在可利用的所有系統許可權
user_col_privs
顯示列上的許可權,使用者是屬主、授予者或被授予者
user_col_privs_made
顯示列上已授予的許可權,使用者是屬主或授予者
user_col_privs_recd
顯示列上已授予的許可權,使用者是屬主或被授予者
user_role_privs
顯示已授予給使用者的所有角色
user_sys_privs
顯示已授予給使用者的所有系統許可權
user_tab_privs
顯示已授予給使用者的所有物件許可權
user_tab_privs_made
顯示已授予給其他使用者的物件許可權,使用者是屬主
user_tab_privs_recd
顯示已授予給其他使用者的物件許可權,使用者是被授予者
Oracle資料操作和控制語言詳解 一
oracle資料操作和控制語言詳解 一 office office sql語言共分為四大類 資料查詢語言dql,資料操縱語言dml,資料定義語言ddl,資料控制語言dcl。其中用於定義資料的結構,比如 建立 修改或者刪除資料庫 dcl用於定義資料庫使用者的許可權 在這篇文章中我將詳細講述這兩種語言在...
Oracle資料操作和控制語言詳解 一
sql語言共分為四大類 資料查詢語言dql,資料操縱語言dml,資料定義語言ddl,資料控制語言dcl。其中用於定義資料的結構,比如 建立 修改或者刪除資料庫 dcl用於定義資料庫使用者的許可權 在這篇文章中我將詳細講述這兩種語言在oracle中的使用方法。dml語言 dml是sql的乙個子集,主要...
python的IO操作和控制語句
一 io操作和佔位符 input output 佔位符 當我們需要輸入一串字元和某個變數的組合時,可以使用佔位符,以下是佔位符舉例 二 條件判斷語句 條件語句是指根據條件表示式的不同計算結果,使程式流轉至不同的 塊。三 迴圈語句 1 while迴圈 格式 while 表示式 else 舉例 coun...