2009-10-29 19 views
16

muszę przyznać uprawnienia do wszystkich użytkowników, mogę zrobić:Oracle - przyznawać przywileje dla wszystkich użytkowników

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

Ale istnieje wielu użytkowników. Jak mogę przyznać to uprawnienie wszystkim użytkownikom jednocześnie?

Próbowałem:

GRANT select on table TO ALL; 

Ale to nie działa.

Odpowiedz

23
grant select on table to public; 

Ale bądź ostrożny, kiedy to robisz - upewnij się, że naprawdę chcesz to zrobić.

+1

Dzięki, to jest to, co musiałem zrobić w moim szkolnym zadaniu, ale nie mogłem tego rozgryźć. Miałem 99% przypisanego już ukończonego i to było ostatnia rzecz pozostała :) –

7

Powinieneś używać ról. Przyznaj uprawnienia do ról. przyznawać role użytkownikom.

+0

Czy role w Oracle są "kumulatywne" czy "rozłączne"? W DB2 są one kumulatywne - jeśli przyznano Ci rolę, możesz wykonywać te uprawnienia przez cały czas. W produkcie Informix role są oddzielne; używasz instrukcji SET ROLE, aby ustawić, która rola jest aktualnie aktywna, i w dowolnym momencie możesz korzystać z przypisanych ról przywilejów z aktualnie ustawioną rolą. (Oczywiście zawsze możesz skorzystać z przywilejów przyznanych bezpośrednio twojemu użytkownikowi.) –

+0

Rola jest jak użytkownik, ale kryje się za nią wszyscy użytkownicy, którym przyznano tę rolę. Lepszą praktyką jest udzielanie uprawnień do konfiguracji opartej na rolach raczej każdemu użytkownikowi osobno. Myślę, że Oracle jest bardziej podobny do DB2. – Dani

+0

@Dani - dzięki. Testem kwasowym jest "czy istnieje instrukcja SET ROLE w Oracle". Jeśli nie, musi działać tak jak DB2; jeśli takowy istnieje, może być bardziej podobny do Informix. –

Powiązane problemy