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