0
用PL/SQL我創建了一個實用程序功能:如何將權限授予功能上的只讀用戶?
create or replace function DOSOMETHING(article varchar) return varchar is ...
begin
...
end;
功能效果很好至今。但僅限於創建它的用戶。我也有一個名爲「read」的用戶只能在db中讀取。他當然不能創建功能,因爲他只讀過權利。事情是他無法看到,存在像功能:
SELECT * FROM ALL_OBJECTS WHERE (OBJECT_TYPE = 'FUNCTION')
>>> This <<<
似乎是可以解決這個問題。所以我可以說「讀」可以使用這個功能選擇語句等?對 ?這就是我想要的。我嘗試了以下,他們都沒有工作。我該如何做,還是以不同的方式做?第一個
begin GRANT SELECT ON DOSOMETHING TO READ; end;
begin execute immediate('GRANT SELECT ON DOSOMETHING TO READ'); end;
錯誤消息:
[ODBC driver for Oracle][Oracle]ORA-06550: line 1, column 7:
PLS-00103: Encountered the symbol "GRANT" when expecting one of the following:
begin declare exit for goto if loop mod null pragma raise
return select update while <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall
<a single-quoted SQL string>
(Oracle版本是8i的,舊的東西,在這個情況下,重要的)
通常情況下,你還可以創建一個同義詞(公共或讀的),因此,閱讀可以使用它沒有命名所有者。 –
♥謝謝! ♥第二個人做到了。 – Bitterblue