Tworzenie użytkownika bazy Oracle:
1 |
CREATE USER nazwa_usera IDENTIFIED BY hasło; |
Nadanie uprawnień użytkownikowi:
1 |
GRANT select ON tabela TO uzytkownik; |
Typowe role dla połączenia i tworzenia obiektów w swoim schemacie:
CONNECT, RESOURCE
1 |
GRANT CONNECT, RESOURCE TO uzytkownik; |
Uprawnienia do wszystkich tabel.
Stwórzmy role support:
create role support;
Następnie dodajmy do niej prawa
1 2 3 4 5 6 7 |
--- BEGIN FOR t IN (SELECT * FROM user_tables) LOOP EXECUTE IMMEDIATE 'GRANT SELECT, UPDATE, INSERT ON ' || t.table_name || ' TO support'; END LOOP; END; |
Uprawnienia do wszystkich obiektów w poleceniu
1 2 3 4 5 6 7 8 9 10 |
--- BEGIN FOR t IN (SELECT object_name, object_type FROM all_objects WHERE owner='TEST1' AND object_type IN ('TABLE','VIEW','PROCEDURE','FUNCTION','PACKAGE')) LOOP IF t.object_type IN ('TABLE','VIEW') THEN EXECUTE IMMEDIATE 'GRANT SELECT, UPDATE, INSERT, DELETE ON SOURCEUSER.'||t.object_name||' TO SUPPORT'; ELSIF t.object_type IN ('PROCEDURE','FUNCTION','PACKAGE') THEN EXECUTE IMMEDIATE 'GRANT EXECUTE ON TEST1.'||t.object_name||' TO SUPPORT'; END IF; END LOOP; END; |
Przykład:
GRANT support TO test2;
Podgląd uprawnień w widokach
user_sys_privs dla uzytkownika:
1 |
select * from user_sys_privs; |
dla usera sys:
1 |
select * from dba_sys_privs; |
src: http://www.nazmulhuda.info/grant-select-on-all-tables-in-a-specific-schema-to-a-user