Temat: Odbieranie uprawnień / nadaweanie upranień dla roli
Tworzę rolę:
create role Malinowski NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN NOREPLICATION ENCRYPTED PASSWORD 'password' CNNECTION LIMIT -1
1. Czy jest jakiś sposób aby odebrać użytkownikowi PUBLIC uprawnienia, tak aby nie mógł:
A) łączyć się z żadną bazą danych
B) wyświetlać definicji funkcji, widoków, ... nawet aby nie mógł zobaczyć jakie są dostępne widoki, funkcje, tabele, ...
C) no i aby nie miał dostępu do żadnych danych - nawet do katalogu/ schematu publicznego
D) ...
E) tak aby miał odebrane absolutnie wszystkie uprawnienia
2) Na razie próbowałem tak - i od razu mam pytania:
A)
revoke grant option for all on database postgres from public;
a) ale mimo to nadal Malinowski może łączyć się z bazą - co robię źle?
b) czy da radę napisać coś w rodzaju
revoke grant option for all on database * from public;
- chodzi mi o ta abym nie musiał wypisywać każdej bazy danych ?
B) czy da radę napisać coś w rodzaju revoke
GRANT OPTION FOR ALL ON TABLESPACE * FROM PUBLIC;
tak abym nie musiał wypisywać każdej przestrzeni tabel ?
C) Podobne pytania mam dla schematów, tabel, funkcji, ... jak dla 2-A-b, 2-B.
3) Jak wyświetlić wszystkie uprawnienia dla konkretnego użytkownika - np. w postaci listy:
tabela1 - uprawnienia
tabela2 - uprawnienia
...
kolumna1 - uprawnienia
...
schemat1 - uprawnienia
...