oracle zarzadzanie uzytkownikami - ghdrako/doc_snipets GitHub Wiki
W bazach istnieje nazwy kont personalnych w formacie 'IMIE.NAZWISKO' (np. JAN.KOWALSKI). Taka forma wymaga użycia cudzysłowu przy odwoływaniu się do użytkownika, ponieważ w innym przypadku oracle potraktuje ja jako separator schematu i obiektu i zwróci błąd.
SELECT username FROM dba_users;
SELECT account_status,created FROM dba_users WHERE username = 'NAZWA_UZYTKOWNIKA';
SELECT privilege FROM dba_sys_privs WHERE grantee='NAZWA_UZYTKOWNIKA';
SELECT owner, table_name, privilege FROM dba_tab_privs WHERE grantee='NAZWA_UZYTKOWNIKA';
SELECT granted_role FROM dba_role_privs WHERE grantee='NAZWA_UZYTKOWNIKA';
ALTER USER <nazwa_uzytkownika> IDENTIFIED BY <nowe_haslo>;
ALTER USER <nazwa_uzytkownika> ACCOUNT UNLOCK;
ALTER USER <nazwa_uzytkownika> ACCOUNT LOCK;
CREATE USER <nazwa_uzytkownika> IDENTIFIED BY <haslo>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
- Minimalne uprawnienie aby użytkownik mógł sie zalogować
GRANT CREATE SESSION TO <nazwa_uzytkownika>;
- Przykładowy zestaw uprawnień/rol dla programisty aby mógł tworzyć obiekty we własnym schemacie
GRANT CREATE SESSION TO <nazwa_uzytkownika>;
GRANT RESOURCE TO <nazwa_uzytkownika>;
GRANT CREATE VIEW, CREATE SYNONYM TO <nazwa_uzytkownika>;
- Przykładowy zestaw uprawnień do podglądu wszystkich tabel w bazie. Szerokie uprawnienie wiec raczej na środowiskach testowych
GRANT CREATE SESSION TO <nazwa_uzytkownika>;
GRANT SELECT ANY TABLE TO <nazwa_uzytkownika>;
GRANT SELECT ANY DICTIONARY TO <nazwa_uzytkownika>;
- Nadanie szczegołowyc uprawnienia dla konkretnej tabeli
GRANT SELECT ON <schemat>.<tabela> TO <nazwa_uzytkownika>; -- odczyt danych z tabeli
GRANT SELECT,INSERT,UPDATE,DELETE ON <schemat>.<tabela> TO <nazwa_uzytkownika>; -- odczyt i modyfikacja
- Wygenerowanie uprawnien select dla wszyskich tabel danego schematu
SELECT 'grant select on '||<nazwa_schematu>||'.'||table_name||' to ''<nazwa_uzytkownika>'';'
FROM all_tables
WHERE owner = '<nazwa_schematu>';
wynik zapytania to polecenia grant nadajace uprawnienia
przyklad
SELECT 'grant select on '||owner||'.'||table_name||' to ''JAN.NOWAK'';'
FROM all_tables
WHERE owner = 'DIPOCKET';