Poniżej znajduje się lista poleceń, które wydają się działać, aby utworzyć nowego użytkownika (login) i przyznać dostęp tylko do odczytu dla jednej określonej tabeli na PostgreSQL.
Załóżmy, że polecenia te są wykonywane podczas logowania z wystarczającymi uprawnieniami (tj. postgres
Logowanie w domyślnej instalacji).
CREATE ROLE user_name NOSUPERUSER NOCREATEDB
NOCREATEROLE NOINHERIT LOGIN PASSWORD 'pwd' VALID UNTIL 'infinity';
Teraz chcę przyznać select
tabelę tab_abc
w bazie danych db_xyz
, więc db_xyz
proszę bardzo (baza danych jest wybierana jako bieżąca przez PgAdmin lub coś takiego):
grant select on tab_abc to user_name;
Pytanie brzmi: czy jest to wystarczające, czy nie powinno być więcej grantów (baza danych connect
, usage
być może)?
Te polecenia wydają się działać dla mnie, ale moja domyślna instalacja ma domyślne ustawienia zabezpieczeń. Jakie dodatkowe granty należy dodać, jeśli administrator serwera skonfigurował silniejsze zabezpieczenia?
Wygląda na to, że nie muszę udzielać, connect
ani usage
- czy jest to implikowane przy udzielaniu select
? Czy zawsze tak jest?
źródło