
[英]How I can GRANT EXECUTE ON <only 1 procedure OR function in package> TO USER
[英]How can I give to user, execute another users's functions?
我想給用戶一個權限來調用另一個用戶函數的函數。
我這樣寫: GRANT EXECUTE ANY FUNCTION TO user;
但它不起作用。
用戶需要調用此:
call XXX.YYY.AlterAllInvalidObjects(NULL,'PACKAGE BODY');
但我怎么能給予補助金?
注意:我不想使用: GRANT EXECUTE ON FUNCTION AlterAllInvalidObjects TO user;
我需要一般解決方案而不是特定的功能名
GRANT EXECUTE ANY PROCEDURE TO user;
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9013.htm#i2077938
將管理功能和程序。 你不能只授予這種功能......
編輯
另一種方式(但是每當其他用戶創建一個新函數來獲得所有授權時,你就必須運行它):
跑
select 'GRANT EXECUTE ON '||owner||'.'||object_name||' TO user;'
from all_objects
where owner = 'xxx'
and object_type='FUNCTION';
並復制粘貼 - 執行結果...
或使用SP做同樣的事情(光標在查詢上並在循環中立即執行)
說實話,看起來你問的是同義詞,而不是授權,因為授權不會幫助你調用AlterAllInvalidObjects而不提及架構。 請考慮一下http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7001.htm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.