procedure建立和執行的顯示賦權
song,user1,user2 都有dba的角色
一, 執行sys下的 procedure時 ,必須顯示賦權 grant execute on procedure_name to user_name;
二, 在sys下, 不需要被顯示賦於對像的許可權。 別的使用者需要
三, 執行別的使用者(不包括sys)下的procedure時, 不需要執行使用者的顯示的賦權
證明:
SQL> conn /as sysdba
Connected.
SQL> create or replace procedure t_pro as
2 begin
3 null;
4 insert into user1.t_t values ('a');
5 end;
6 /
Procedure created. --sys使用者 不需要 被顯示給user1.t_t的許可權
SQL> grant dba to song;
Grant succeeded.
SQL> conn song/song
Connected.
SQL> exec sys.t_pro;
BEGIN sys.t_pro; END; --song執行sys的, 執行不了,但是報的錯不是沒有許可權
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'SYS.T_PRO' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
SQL> conn /as sysdba
Connected.
SQL> exec sys.t_pro;
PL/SQL procedure successfully completed.
SQL> show user
USER is "SYS"
SQL> grant execute any procedure to song; --給執行任何procedure的許可權
Grant succeeded.
SQL> conn song/song
Connected.
SQL> exec sys.t_pro;
BEGIN sys.t_pro; END; --還是執行不了,(可以認為給的any procedure不包含sys下的物件)
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'SYS.T_PRO' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
SQL> conn /as sysdba
Connected.
SQL> grant execute on t_pro to song; --顯示賦於執行許可權
Grant succeeded.
SQL> conn song/song
Connected.
SQL> exec sys.t_pro; --成功
PL/SQL procedure successfully completed.
SQL> conn song/song
Connected.
SQL> create or replace procedure t_pro_song as
2 begin
3 null;
4 insert into user1.t_t values ('b');
5 end;
6 /
Warning: Procedure created with compilation errors.
SQL> show error
Errors for PROCEDURE T_PRO_SONG:
LINE/COL ERROR
-------- -----------------------------------------------------------------
4/1 PL/SQL: SQL Statement ignored
4/19 PL/SQL: ORA-01031: insufficient privileges --有dba許可權也用不了user1的t_t表
SQL> conn user1/user1
Connected.
SQL> grant insert on t_t to song;
Grant succeeded.
SQL> conn song/song
Connected.
SQL> create or replace procedure t_pro_song as
2 begin
3 null;
4 insert into user1.t_t values ('b');
5 end;
6 /
Procedure created. --顯示給許可權之後,可以
SQL> conn user2/user2
Connected.
SQL> exec song.t_pro_song; --user2 雖沒有顯示賦權,但是可以執行
PL/SQL procedure successfully completed.
SQL> select * from user1.t_t;
NAME
----------
user1
a
a
b
SQL> conn song/song
Connected.
SQL> create or replace procedure t_pro_song_a AUTHID CURRENT_USER as --以AUTHID CURRENT_USER 定義,下面還是可以執行
2 begin
3 null;
4 insert into user1.t_t values ('b');
5 end;
6 /
Procedure created.
SQL> conn user2/user2
Connected.
SQL> exec song.t_pro_song_a;
PL/SQL procedure successfully completed.
SQL> select * from user1.t_t;
NAME
----------
user1
a
a
b
b
by song
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25099483/viewspace-772367/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- idea執行時預設顯示自己建立的jsp方法IdeaJS
- vue控制dom顯示出現後執行的操作Vue
- Sampling Procedure 和 Sample-drawing Procedure,SAP QM裡的雙胞胎?
- top -Hp pid 顯示所有的執行緒執行緒
- django搭建完畢執行顯示hello djangoDjango
- qt 使用qmake pro檔案新增 ico圖示,程式執行時顯示圖示,exe也顯示圖示QT
- 資料顯示62%的網站仍然執行PHP 5網站PHP
- Shell程式設計-建立和執行程式設計
- Android的UI顯示原理之Surface的建立AndroidUI
- Jmeter效能測試場景的建立和執行JMeter
- 如何讓Mac的Dock僅顯示正在執行的應用程式?Mac
- Ubuntu 建立新的使用者並且賦予特權Ubuntu
- 執行緒池的建立和使用,執行緒池原始碼初探(篇一)執行緒原始碼
- gtx和rtx顯示卡的區別 gtx顯示卡和rtx顯示卡哪個好
- Concurrency(二:建立和啟動執行緒)執行緒
- [20190720]12cR2顯示執行計劃.txt
- 遊戲基礎知識——遊戲的“自我賦權”和“非自我賦權”傾向遊戲
- 執行緒池建立執行緒的過程執行緒
- Flutter之根據執行的platform顯示對應風格的widgetFlutterPlatform
- Linux 中顯示可執行檔案的路徑 | 哪個命令Linux
- 在DOS視窗執行java命令中文顯示正常,執行javac命令中文亂碼Java
- LightDB/PostgreSQL標準業務建立語句【賦予讀寫許可權和只讀許可權】SQL
- vim顯示行號
- SSMS 顯示行號SSM
- 專業顯示卡和遊戲顯示卡的區別詳解 專業顯示卡和遊戲顯示卡哪個好?遊戲
- JAVA中執行緒的建立Java執行緒
- jdk建立執行緒的方式JDK執行緒
- Win10工作列不顯示應用圖示怎麼辦 應用已經在執行但不顯示Win10
- Android多執行緒+單執行緒+斷點續傳+進度條顯示下載Android執行緒斷點
- css使文字顯示兩行後顯示省略號CSS
- win下clion打包的.exe檔案在無執行環境的電腦執行顯示缺失各種.dll
- NVIDIA和ATI顯示卡哪個好?NVIDIA和ATI顯示卡的區別
- RT_Thread ps指令 輸出執行緒名字顯示不全thread執行緒
- 在Windows環境下使用AMD顯示卡執行Stable DiffusionWindows
- 直播平臺原始碼,隱藏app圖示並不在最近執行中顯示原始碼APP
- win10工作列看不到執行圖示怎麼回事 win10工作列執行圖示不顯示如何解決Win10
- 計劃任務執行批處理指令碼,執行記錄顯示“上次執行結果(0x1)”指令碼
- Win10系統WampServer執行顯示橙色變成綠色的方法Win10Server
- 建立執行緒的三種方式執行緒