[英]Grant select on any table/view on the schema
在oracle中,如果我要创建用户/架构FOO,然后在架构FOO上创建一堆表,
有没有一种方法可以在创建表/视图之前在所有表/视图上给用户FOO授予选择权? 还是仅在创建表/视图之后才需要这样做?
CREATE USER FOO ....
/
*** GRANT SELECT TO USER FOO ON ANY TABLE/VIEW CREATED
/
CREATE TABLE 1 ...
/
CREATE TABLE ... ...
/
CREATE TABLE N ...
/
并非完全是您想要的,但是您可以使用动态sql为架构的所有表赋予select
(或任何其他)特权:
begin
for i in (
select 'grant select on ' || table_name || ' to USER2' as stm
from dba_tables
where owner = 'USER1'
)
loop
execute immediate i.stm;
end loop;
end;
这与您的要求略有不同,因为只有在创建所有表之后才能执行此操作; 但是,这是一条简单的SQL,您可以在每次创建表后运行它,以确保完全授予用户权限。
您要的是grant select on <schema_name> to <user_name>
。 今天这样的事情不存在。 在OTN(Oracle技术网)上有一个关于此问题的未解决的请求/用户调查,该调查当前处于活动状态:
https://community.oracle.com/ideas/2333
如果需要,您将在同一地方找到解决方法的想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.