Tomasz M.

Tomasz M. Administrator Linux

Temat: uprawnienia obiektowe w Oracle 10g

Witam,

Mam sobie schemat w bazie produkcyjnej np. HR a w nim 20 tabel. Zakładam sobie usera - programista i chce mu nadać uprawnienia tylko do select do tych tabel z schematu HR.

Mogę zrobić to tak:

grant select on HR.tabela1 to programista;
grant select on HR.tabela2 to programista;
grant select on HR.tabela3 to programista;
grant select on HR.tabela4 to programista;
grant select on HR.tabela5 to programista;
.
.
.
itd.


Czy można to inaczej (prościej) wykonać tak by user programista miał prawo select do wszystkich tabel w schemacie HR i nic więcej?Tomasz M. edytował(a) ten post dnia 07.03.11 o godzinie 21:08

konto usunięte

Temat: uprawnienia obiektowe w Oracle 10g

Tomasz M.:
Czy można to inaczej (prościej) wykonać tak by user programista miał prawo select do wszystkich tabel w schemacie HR i nic więcej?

Tak ... podejście tradycyjne polega na:

create role select_hr_tables;

Potem przy tworzeniu każdej tabeli ... albo i w ogóle potem:

grant select on HR.tabela1 to select_hr_tables;

W sumie można to odrobinkę zautomatyzować:

select 'grant select on HR.' || object_name || ' to select_hr_tables;' from dba_objects where object_type = 'TABLE' and owner = 'HR';

i wynik w/w uruchomić w kolejnej iteracji.

No i tu już z górki ... Chcesz komuś dać to prawo ? No to jedna instrukcja:

grant select_hr_tables to programista;

Nie sprawdzałem w/w - mogą być błędy składniowe.
Tomasz M.

Tomasz M. Administrator Linux

Temat: uprawnienia obiektowe w Oracle 10g

Dzięki za pomoc.



Wyślij zaproszenie do