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

首頁 > 開發 > 綜合 > 正文

如何在存儲過程中擁有role的權限

2024-07-21 02:32:44
字體:
來源:轉載
供稿:網友

  我們知道,用戶擁有的role權限在存儲過程是不可用的。如:     SQL> select * from dba_role_PRivs where grantee='SUK';     GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
    ------------ ------------ ------------ ------------
    SUK DBA NO YES
    SUK CONNECT NO YES
    SUK RESOURCE NO YES    --用戶SUK擁有DBA這個role    --再創建一個測試存儲過程:
    create or replace procedure p_create_table
    is
    begin
    Execute 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: 在"SUK.P_CREATE_TABLE", line 3
    ORA-06512: 在line 1    --可以看到,即使擁有DBA role,也不能創建表。role在存儲過程中不可用。
    --碰到這種情況,我們一般需要顯式進行系統權限,如grant create table to suk;
    --但這種方法太麻煩,有時候可能需要進行非常多的授權才能執行存儲過程
    --實際上,Oracle給我們提供了在存儲過程中使用role權限的方法:
    --修改存儲過程,加入Authid Current_User時存儲過程可以使用role權限。
    create or replace procedure p_create_table
    Authid Current_User is
    begin
    Execute Immediate 'create table create_table(id int)';
    end p_create_table;    --再嘗試執行:
    SQL> exec p_create_table;    PL/SQL procedure sUCcessfully completed    --已經可以執行了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 册亨县| 新巴尔虎右旗| 泉州市| 资源县| 晋宁县| 榆社县| 武陟县| 绩溪县| 高邑县| 镇巴县| 江山市| 长治县| 上犹县| 永善县| 霍林郭勒市| 瑞安市| 封丘县| 临湘市| 修武县| 南开区| 罗江县| 始兴县| 铁岭市| 二手房| 治县。| 松江区| 巴林右旗| 乐安县| 曲靖市| 图木舒克市| 西吉县| 如东县| 孟津县| 崇左市| 文安县| 德令哈市| 那曲县| 玉龙| 锦屏县| 荃湾区| 龙泉市|