国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

了解Oracle存儲(chǔ)過程中的角色

2024-08-29 13:33:19
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
    角色(數(shù)據(jù)庫(kù)權(quán)限集)與存儲(chǔ)過程、函數(shù)和數(shù)據(jù)包之間的交互方式是Oracle安全模型中最難以處理的一個(gè)部分。Oracle中的對(duì)象權(quán)限可以直接或通過角色間接授予用戶。    假設(shè)一個(gè)HR用戶向用戶ABEL授予EMPLOYEES表的一些許可: GRANT select, insert, update, delete    這個(gè)語(yǔ)句直接把上述四個(gè)權(quán)限授予給用戶ABEL。另一方面,假設(shè)一名HR用戶這樣做:GRANT select, insert, update, delete ON employees TO hr_role;    假如ABEL已被授予HR_ROLE角色,那么他現(xiàn)在通過這個(gè)角色就直接擁有了以上權(quán)限。    不管使用哪種方法,現(xiàn)在ABEL都擁有了HR.EMPLOYEES表的SELECT權(quán)限。假如ABEL通過SELECT語(yǔ)句直接從表中選擇數(shù)據(jù),那么他如何獲得許可并不重要。    但是,假如ABEL試圖建立從這個(gè)表中選擇的存儲(chǔ)過程、函數(shù)或數(shù)據(jù)包,那么他是直接獲得許可,還是通過角色取得許可就存在很大差異。    Oracle要求直接向用戶授予一個(gè)存儲(chǔ)過程中的非擁有對(duì)象許可。在編輯過程中角色被臨時(shí)關(guān)閉,用戶不能訪問授予給他們的任何內(nèi)容。這樣做是出于性能和安全考慮。    角色可以通過SET ROLE命令動(dòng)態(tài)激活和禁用,假如Oracle需要不斷檢查哪個(gè)角色和許可當(dāng)前處于激活狀態(tài),則會(huì)帶來(lái)巨大的治理負(fù)擔(dān)。    下面的代碼是一個(gè)更新HR雇員文件的簡(jiǎn)短存儲(chǔ)過程(這段代碼用一個(gè)同義字EMPLOYEES來(lái)代表HR.EMPLOYEES)。當(dāng)ABEL在第一種情況下試圖用直接權(quán)限編輯這個(gè)文件時(shí),編輯取得成功;當(dāng)他在第二種情況下僅用間接權(quán)限編輯時(shí),編輯失敗。CREATE OR REPLACE PROCEDURE update_emp (p_employee_id IN NUMBER,p_salary IN NUMBER)ASv_department_idemployees.department_id%TYPE;BEGINSELECT department_id INTO v_department_idFROM employeesWHERE employee_id = p_employee_id;UPDATE employeesSET salary = p_salaryWHERE employee_id = p_employee_id;IF v_department_id = 100 THENUPDATE local_employeesSET salary = p_salaryWHERE employee_id = p_employee_id;END IF;END;/    有趣的是,向PUBLIC授予許可和直接授予所有用戶許可相同。PUBLIC常被認(rèn)為是一個(gè)角色,但它并不是一個(gè)角色。它是一個(gè)用戶集而不是一個(gè)許可集。假如向PUBLIC授權(quán)HR.EMPLOYEES的許可,ABEL將能夠建立他自己的存儲(chǔ)過程。雖然在EMPLOYEES表中我們不推薦這樣做,但任何授予給PUBLIC的表都可以自由地在存儲(chǔ)過程中應(yīng)用。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 金山区| 海口市| 西盟| 神农架林区| 钟山县| 东港市| 丘北县| 桦川县| 若尔盖县| 渑池县| 石首市| 上林县| 二连浩特市| 石狮市| 泗水县| 宁波市| 运城市| 习水县| 腾冲县| 永善县| 阿鲁科尔沁旗| 哈尔滨市| 曲松县| 涞源县| 博白县| 富宁县| 青浦区| 昔阳县| 故城县| 永修县| 黄浦区| 宁波市| 新蔡县| 当阳市| 泰顺县| 荆门市| 湘西| 贵溪市| 新邵县| 鹿邑县| 孟津县|