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

首頁 > 開發 > 綜合 > 正文

在存儲過程中擁有"role"權限的特殊性

2024-07-21 02:42:05
字體:
來源:轉載
供稿:網友
在Oracle數據庫中,用戶擁有的role權限在存儲過程是不可以使用的。

示例如下:

SQL> select * from dba_role_PRivs where grantee='TEST';GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE------------ ------------ ------------ ------------TEST DBA NO YES--用戶擁有DBA這個role--再創建一個測試存儲過程:create or replace procedure p_create_table isbeginExecute Immediate 'create table create_table(id int)';end p_create_table;--然后測試SQL> exec p_create_table;begin p_create_table; end;ORA-01031: 權限不足ORA-06512: 在"TEST.P_CREATE_TABLE", line 3ORA-06512: 在line 1

--大家可以看到,即使擁有DBA role,也不能創建表。role在存儲過程中不可用。

--遇到這種情況,我們一般需要顯式進行系統權限,如grant create table to test;

--但這種方法太麻煩,有時候可能需要進行非常多的授權才能執行存儲過程

--實際上,Oracle給我們提供了在存儲過程中使用role權限的方法:

--修改存儲過程,加入Authid Current_User時存儲過程可以使用role權限。

create or replace procedure p_create_table Authid Current_User isbeginExecute Immediate 'create table create_table(id int)';end p_create_table;--再嘗試執行:SQL> exec p_create_table;PL/SQL procedure successfully completed

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涞源县| 信宜市| 托克托县| 宁阳县| 靖宇县| 壶关县| 油尖旺区| 津市市| 萝北县| 珠海市| 浦县| 同德县| 新乐市| 资中县| 宜川县| 陆河县| 潜江市| 金溪县| 社会| 夹江县| 台安县| 瑞丽市| 高安市| 陆川县| 安陆市| 祥云县| 凤凰县| 荆门市| 麻城市| 云和县| 炎陵县| 靖西县| 九江市| 诸城市| 巴里| 滕州市| 红河县| 治县。| 平远县| 涡阳县| 梁山县|