Oracle資料操作和控制語言詳解 之三

2021-06-06 11:46:27 字數 1802 閱讀 4773

角色和角色許可權

角色許可權就是將屬於使用者的許可權授予乙個角色。任何許可權都可以授予給乙個角色。授予系統許可權給被授予者必須使用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...