簡體   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