2009-10-29 180 views
16

我需要權限授予所有用戶的所有用戶,我可以這樣做:甲骨文 - 權限授予

GRANT select on table TO user1; 
GRANT select on table TO user2; 
... 

但也有很多用戶。我怎樣才能將此特權一次性授予所有用戶?

我想:

GRANT select on table TO ALL; 

但是,這並不工作。

回答

23
grant select on table to public; 

但是,當你這樣做的時候要小心 - 確保它是你真正想要做的。

+1

謝謝,這正是我在學校任務中​​需要做的事情,但我無法弄清楚。我有99%的代理已完成,這是剩下的最後一件事:) – 2009-10-29 13:31:46

7

您應該使用角色。 授予角色權限。 授予用戶角色。

+0

Oracle'累計'或'不相交'中的角色是?在DB2中,它們是累積性的 - 如果您已被授予角色,則可以隨時運行這些權限。在Informix中,角色是分開的;您使用SET ROLE語句來設置哪個角色當前處於活動狀態,並且您只能使用當前設置的角色來執行角色提供的權限。 (當然,您可以始終行使直接授予用戶名稱的任何權限。) – 2009-10-29 13:55:37

+0

a角色就像用戶,但隱藏了所有授予該角色的用戶。 對於基於角色的設置而不是分別授予每個用戶的權限是一種更好的做法。 我認爲Oracle更像DB2。 – Dani 2009-10-29 14:00:30

+0

@Dani - 謝謝。一項酸性測試是「Oracle中是否存在SET ROLE聲明」。否則,它必須像DB2一樣工作;如果有的話,它可能更像Informix。 – 2009-10-29 14:08:38