国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 甘洛县| 余姚市| 元谋县| 五华县| 石家庄市| 武平县| 阿坝| 凤台县| 罗平县| 桐柏县| 莆田市| 清河县| 海伦市| 沂南县| 枣庄市| 无棣县| 玉山县| 汕尾市| 长沙县| 方正县| 东丰县| 潢川县| 无为县| 民乐县| 台南市| 沙洋县| 合水县| 平舆县| 濮阳县| 玉田县| 甘孜县| 静宁县| 济宁市| 深州市| 云和县| 佛教| 博乐市| 卢湾区| 伽师县| 南平市| 桂平市|