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