繁体   English   中英

在模式的任何表/视图上授予选择

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM