欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

oracle 權(quán)限與角色

系統(tǒng) 2305 0

?權(quán)限允許用戶訪問屬于其它用戶的對象或執(zhí)行程序,ORACLE系統(tǒng)提供三種權(quán)限:

   Object 對象級

   System 系統(tǒng)級

   Role 角色級

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

  建立和使用角色

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

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

SET ROLE role_name IDENTIFIED BY password

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

對象權(quán)限

  對象權(quán)限就是指在表、視圖、序列、過程、函數(shù)或包等對象上執(zhí)行特殊動作的權(quán)利。有九種不同類型的權(quán)限可以授予給用戶或角色。如下表:
權(quán)限 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
 對象由不止一個權(quán)限,特殊權(quán)限ALL可以被授予或撤銷。如TABLE的ALL權(quán)限就包括:

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

  如何看這個表我們以ALTER權(quán)限為例進行說明

  ALTER權(quán)限

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

    . 更改表名

    . 增加或刪除列

    . 改變列的數(shù)據(jù)類型或大小

    . 將表轉(zhuǎn)變?yōu)榉謪^(qū)表

  在SEQUENCE上的ALTER權(quán)限允許執(zhí)行ALTER Sequence語句,重新給sequence分配最小值、增量和緩沖區(qū)大小。

系統(tǒng)權(quán)限

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

角色和角色權(quán)限

  角色權(quán)限就是將屬于用戶的權(quán)限授予一個角色。任何權(quán)限都可以授予給一個角色。授予系統(tǒng)權(quán)限給被授予者必須使用WITH_ADMIN_OPTION子句,在會話期間通過SET ROLE語句授予或撤銷角色權(quán)限。然而,角色權(quán)限不能依靠存儲在SQL中的權(quán)限。如果函數(shù)、程序、包、觸發(fā)器或者方法使用另一個計劃擁有的對象,那么就必須直接給對象的擁有者授權(quán),這是因為權(quán)限不會在會話之間改變。

授予和撤銷權(quán)限

   給用戶或者角色授予權(quán)限使用GRANT 語句,GRANT語句的語法如下:

GRANT ROLE(或system privilege) TO user(role,Public) WITH ADMIN OPTION(可選)

  對象權(quán)限被授予 WITH GRANT OPTION,

權(quán)限和數(shù)據(jù)字典

  數(shù)據(jù)字典是ORACLE存儲有關(guān)數(shù)據(jù)庫結(jié)構(gòu)信息的地方,數(shù)據(jù)本身存放在其他地方,數(shù)據(jù)字典由表和視圖組成。在考試中關(guān)于數(shù)據(jù)字典最容易考的內(nèi)容是:查看那一類權(quán)限已經(jīng)被授予。比如DBA_TAB_PRIV包含了用戶授予給另一用戶的對象權(quán)限和在授予時是否帶有WITH GRANT OTPION子串的信息。注意DBA_TAB_PRIV不僅僅包含了對表的權(quán)限的關(guān)系,他還包括函數(shù)、包、隊列等等上的權(quán)限的關(guān)系。下表列出了所有的權(quán)限和角色的數(shù)據(jù)字典視圖:

  表: 權(quán)限的數(shù)據(jù)字典視圖

視圖 作用
ALL_COL_PRIVS 表示列上的授權(quán),用戶和PUBLIC是被授予者
ALL_COL_PRIVS_MADE 表示列上的授權(quán),用戶是屬主和被授予者
ALL_COL_RECD 表示列上的授權(quán),用戶和PUBLIC是被授予者
ALL_TAB_PRIVS 表示對象上的授權(quán),用戶是PUBLIC或被授予者或用戶是屬主
ALL_TAB_PRIVS_MADE 表示對象上的權(quán)限,用戶是屬主或授予者
ALL_TAB_PRIVS_RECD 表示對象上的權(quán)限, 用戶是PUBLIC或被授予者
DBA_COL_PRIVS 數(shù)據(jù)庫列上的所有授權(quán)
DBA_ROLE_PRIVS 顯示已授予用戶或其他角色的角色
DBA_SYS_PRIVS 已授予用戶或角色的系統(tǒng)權(quán)限
DBA_TAB_PRIVS 數(shù)據(jù)庫對象上的所有權(quán)限
ROLE_ROLE_PRIVS 顯示已授予用戶的角色
ROLE_SYS_PRIVS 顯示通過角色授予用戶的系統(tǒng)權(quán)限
ROLE_TAB_PRIVS 顯示通過角色授予用戶的對象權(quán)限
SESSION_PRIVS 顯示用戶現(xiàn)在可利用的所有系統(tǒng)權(quán)限
USER_COL_PRIVS 顯示列上的權(quán)限,用戶是屬主、授予者或被授予者
USER_COL_PRIVS_MADE 顯示列上已授予的權(quán)限,用戶是屬主或授予者
USER_COL_PRIVS_RECD 顯示列上已授予的權(quán)限,用戶是屬主或被授予者
USER_ROLE_PRIVS 顯示已授予給用戶的所有角色
USER_SYS_PRIVS 顯示已授予給用戶的所有系統(tǒng)權(quán)限
USER_TAB_PRIVS 顯示已授予給用戶的所有對象權(quán)限
USER_TAB_PRIVS_MADE 顯示已授予給其他用戶的對象權(quán)限,用戶是屬主
USER_TAB_PRIVS_RECD 顯示已授予給其他用戶的對象權(quán)限,用戶是被授予者

?

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

?

角色相關(guān)的視圖.

一. 概述

?? 與權(quán)限,角色相關(guān)的視圖大概有下面這些:

???DBA_SYS_PRIVS: 查詢某個用戶所擁有的系統(tǒng)權(quán)限

???USER_SYS_PRIVS:??當前用戶所擁有的系統(tǒng)權(quán)限

???SESSION_PRIVS:????當前用戶所擁有的全部權(quán)限

???ROLE_SYS_PRIVS:????某個角色所擁有的系統(tǒng)權(quán)限

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

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

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

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

???另外還有針對表的訪問權(quán)限的視圖:

???TABLE_PRIVILEGES

???ALL_TAB_PRIVS ??

???ROLE_TAB_PRIVS:???? 某個角色被賦予的相關(guān)表的權(quán)限

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

二.? Examples

?? 1.? 查詢當前用戶所擁有的權(quán)限

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

?? 2.?? 查詢某個用戶被賦予的系統(tǒng)權(quán)限.

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

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

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

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

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

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

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

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

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

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

????4.? 查詢某一角色被賦予的系統(tǒng)權(quán)限

????????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這個角色是用于執(zhí)行SQL AUTO TRACE的, 通過執(zhí)行?$ORACLE_HOME/sqlplus/admin/plustrce.sql可以生成這個角色.

?



oracle 權(quán)限與角色


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 青青草免费观看完整版高清 | 黑色丝袜美女自安慰视频 | 五月天婷婷在线视频国产在线 | 久久精品一区二区三区四区 | 色综合久久88色综合天天 | 国产亚洲欧美一区 | 欧美视频亚洲视频 | 中文字幕日韩欧美 | 日本黄色视| 日韩a| 一区二区三区日 | www日韩免费高清视频 | 男女啪啪片 | 双性精h调教灌尿打屁股的文案 | 好吊日在线视频 | 亚洲特级aaaaaa毛片 | 免费大片黄在线观看 | 天天草视频 | 亚洲日韩aⅴ在线视频 | 俄罗斯18videosex性 | 国产二区三区视频 | www视频在线观看 | 91亚洲国产成人精品性色 | 亚洲第一女人av | 欧美久久久久久 | 色久在线| 精品一区二区三区中文字幕 | 中文字幕免费在线观看视频 | www视频在线观看 | jizz国产丝袜18老师女人 | 欧美无乱码久久久免费午夜一区 | 老头巨大校花体内驰骋小说文 | 综合色久| 性视频亚洲 | 日韩欧美一级大片 | 成人亚洲国产综合精品91 | 一级毛片真人免费观看 | 亚洲国内精品 | 日韩欧美一区二区三区四区 | 亚洲网站一区 | 亚洲精品第一综合99久久 |