亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

oracle 權限與角色

系統 2223 0

?權限允許用戶訪問屬于其它用戶的對象或執行程序,ORACLE系統提供三種權限:

   Object 對象級

   System 系統級

   Role 角色級

  這些權限可以授予給用戶、特殊用戶public或角色,如果授予一個權限給特殊用戶"Public"(用戶public是oracle預定義的,每個用戶享有這個用戶享有的權限),那么就意味作將該權限授予了該數據庫的所有用戶。對管理權限而言,角色是一個工具,權限能夠被授予給一個角色,角色也能被授予給另一個角色或用戶。用戶可以通過角色繼承權限,除了管理權限外角色服務沒有其它目的。權限可以被授予,也可以用同樣的方式撤銷。

  建立和使用角色

  如前所訴,角色存在的目的就是為了使權限的管理變得輕松。建立角色使用CREATE ROLE語句,他的語法如下:

CREATE ROLE role_name IDENTIFIED BY password
CREATE ROLE role_name IDENTIFIED EXTERNALLY
CREATE ROLE role_name IDENTIFIED GLOBALLY
  缺省情況下建立的角色沒有password或者其他的識別。如果使用IDENTIFIED BY 子句建立,那么角色不會自動響應,必須用SET ROLE激活。

SET ROLE role_name IDENTIFIED BY password

  EXTERNALLY和GLOBALLY類型的角色由操作系統和ORACLE Service server驗證。通常用戶需要權限修改應用程序中使用的表單中的數據,但是只有在應用程序運行時而不是在使用ad hoc工具時,這種上下文敏感安全可以通過有PASSWORD的角色來實現。當用戶在應用程序內部連結數據庫時,代碼將執行SET ROLE命令,通過安全驗證。所以用戶不需要知道角色的password,也不需要自己輸入SET ROLE命令。

對象權限

  對象權限就是指在表、視圖、序列、過程、函數或包等對象上執行特殊動作的權利。有九種不同類型的權限可以授予給用戶或角色。如下表:
權限 ALTER DELETE EXECUTE INDEX INSERT READ REFERENCE SELECT UPDATE
Directory no no no no no yes no no no
function no no yes no no no no no no
procedure no no yes no no no no no no
package no no yes no no no no no no
DB Object no no yes no no no no no no
Libary no no yes no no no no no no
Operation no no yes no no no no no no
Sequence yes no no no no no no no no
Table yes yes no yes yes no yes yes yes
Type no no yes no no no no no no
View no yes no no yes no no yes yes
 對象由不止一個權限,特殊權限ALL可以被授予或撤銷。如TABLE的ALL權限就包括:

   SELECT,INSERT,UPDATE和DELETE,還有INDEX,ALTER,和REFERENCE。

  如何看這個表我們以ALTER權限為例進行說明

  ALTER權限

  允許執行ALTER TABLE和LOCK TABLE操作,ALTER TABLE可以進行如下操作:

    . 更改表名

    . 增加或刪除列

    . 改變列的數據類型或大小

    . 將表轉變為分區表

  在SEQUENCE上的ALTER權限允許執行ALTER Sequence語句,重新給sequence分配最小值、增量和緩沖區大小。

系統權限

  系統權限需要授予者有進行系統級活動的能力,如連接數據庫,更改用戶會話、建立表或建立用戶等等。你可以在數據字典視圖SYSTEM_PRIVILEGE_MAP上獲得完整的系統權限。對象權限和系統權限都通過GRANT語句授予用戶或角色。需要注意的是在授予對象權限時語句應該是WITH GRANT OPTION子句,但在授予系統權象時語句是WITH ADMIN OPTION,所以在你試圖授予系統權限時,使用語句WITH GRANT OPTION系統會報告一個錯誤:ONLY ADMIN OPTION can be specified。在考試中要特別注意這個語法和錯誤信息。

角色和角色權限

  角色權限就是將屬于用戶的權限授予一個角色。任何權限都可以授予給一個角色。授予系統權限給被授予者必須使用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 顯示已授予給其他用戶的對象權限,用戶是被授予者

?

--------------------------------------------------------------------------

?

角色相關的視圖.

一. 概述

?? 與權限,角色相關的視圖大概有下面這些:

???DBA_SYS_PRIVS: 查詢某個用戶所擁有的系統權限

???USER_SYS_PRIVS:??當前用戶所擁有的系統權限

???SESSION_PRIVS:????當前用戶所擁有的全部權限

???ROLE_SYS_PRIVS:????某個角色所擁有的系統權限

???注意:?要以SYS用戶登陸查詢這個視圖,否則返回空.

???ROLE_ROLE_PRIVS:??? 當前角色被賦予的角色

?? SESSION_ROLES:????? 當前用戶被激活的角色

???USER_ROLE_PRIVS:?? 當前用戶被授予的角色

???另外還有針對表的訪問權限的視圖:

???TABLE_PRIVILEGES

???ALL_TAB_PRIVS ??

???ROLE_TAB_PRIVS:???? 某個角色被賦予的相關表的權限

??????...???

二.? Examples

?? 1.? 查詢當前用戶所擁有的權限

???????Select? *? from? session_privs;

?? 2.?? 查詢某個用戶被賦予的系統權限.

????????可以有多種方式

???????Select? *? from? user_sys_privs;

???????或者:? select * from DBA_SYS_PRIVS where grantee='XXX'

?????? (需要當前用戶擁有DBA角色)

???3.? 查詢當前用戶被授予的角色:

???????1.? ?Select? *? from SESSION_ROLES order by ROLE??

??????????? 說明: 這個查詢會返回當前用戶所被授予的全部角色, 其中包括嵌套授權的

角色. 例如將DBA角色授予了一個用戶,DBA角色已經被授予的角色(例如

exp_full_database?和 imp_full_database)也會被查詢出來 ???

???????2.? Select * from USER_ROLE_PRIVS???????

????4.? 查詢某一角色被賦予的系統權限

????????Select Privilege from ROLE_SYS_PRIVS where ROLE=&Role

??????? 輸入 role='CONNECT'

????????輸出:
?????????? PRIVILEGE
?????????? --------------------
????????? ? ALTER SESSION
??????????? CREATE CLUSTER
??????????? CREATE DATABASE LINK
??????????? CREATE SEQUENCE
??????????? CREATE SESSION
??????????? CREATE SYNONYM
??????????? CREATE TABLE
??????????? CREATE VIEW

?

????5. 查詢當前角色被授予的角色

???????Select GRANTED_ROLE from ROLE_ROLE_PRIVS where ROLE=&ROLE

???????輸入 role= 'DBA'

???????輸出:

?????????? GRANTED_ROLE
?????????? ----------------------
??? ????? ? DELETE_CATALOG_ROLE
???????? ?? EXECUTE_CATALOG_ROLE
??? ?? ???? EXP_FULL_DATABASE
????? ?? ?? IMP_FULL_DATABASE
?? ???????? PLUSTRACE
?????? ???? SELECT_CATALOG_ROLE

???????說明: PLUSTRACE這個角色是用于執行SQL AUTO TRACE的, 通過執行?$ORACLE_HOME/sqlplus/admin/plustrce.sql可以生成這個角色.

?



oracle 權限與角色


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人国产精品视频频 | 2020亚洲欧美日韩在线观看 | 伊人久久色| 精品在线视频观看 | 青草在线视频 | 成人看的一级毛片 | 亚洲区欧美中文字幕久久 | 欧美成人久久久免费播放 | 五月婷婷激情六月 | 国产成人精品第一区二区 | 久久久久琪琪免费影院 | 久久成人乱小说 | 波多野结衣久久精品 | 啪啪色视频 | 四虎在线视频免费观看 | 久久久综合九色合综 | 久久精品免费观看视频 | 亚洲视频免费在线观看 | 人人爱天天做夜夜爽毛片 | 国产一级特黄一级毛片 | 一级肉体毛片视频免费看看 | 中文字幕一区二区三区 精品 | 欧美一级二级aaa免费视频 | 久久久久久亚洲精品 | 日本a视频在线观看 | 国产成人精品免费 | 99久久免费精品视频 | 国产精品一级毛片不收费 | bbw老妇bbwbbwass| 久久尹人香蕉国产免费天天 | 狠狠狠狠狠狠狠狠狠狠 | 日本一级做人免费视频 | 久久97久久 | 网曝门精品国产事件在线观看 | 国产精品久久久久久久久岛 | 青草视频在线观看视频 | 天天毛片 | 亚洲欧美日韩中文高清一 | 免费看欧美一级特黄a大片 免费看欧美一级特黄a大片一 | 久精品视频村上里沙 | 91久久精品国产亚洲 |