db.dobo.sk

Postgres – vsetko, co si chtel vediet, ale bal sa spytat svojho seniora, aby si nevypadal ako jelito 11. Users and roles.

bez komentára

Narozdiel od obecneho zvyku rozdelovat pristupy medzi userov a grupy (roly) a la Oracle, postgres to ma jednoduche: v zasade existuje len rola (ROLE), ktora moze byt zapuzdrovana do inych roli. Prikaz CREATE USER a CREATE GROUP su len aliasom ku komandu CREATE ROLE. Malym rozdielom je, ze v pripade CREATE USER je uzivatel vytvoreny automaticky s privilegiom LOGIN, zatailco u CREATE ROLE nie. Konzekventne prikaz SELECT * FROM PG_USER; ukaze len userov, ktori sa mozu lognut, zatialco SELECT * FROM PG_ROLES; ukaze absolutne vsetkych userov.

Inymi sposobmi na listovanie userov je psql \du+ a SELECT * FROM PG_SHADOW;

Ak chceme vyuzivat princip grup, tak je nutne vytvorit rolu, ktora bude zapuzdrovat userov:

  • CREATE ROLE grp_admins INHERIT;
  • CREATE ROLE franta;
  • GRANT grp_admins TO franta;

Bez inherit by samozrejme zapuzdrovala, ale user by nezdedil opravnenia grupy.

pg_ident a pg_hba

Tieto dva konfiguraky upravuju obecny pristup k celemu DB clusteru. pg_ident.conf mapuje system userov na db userov, napr.:

MAPNAME SYSTEM-USERNAME PG-USERNAME
local_admins root postgres

Znamena, root sa bude mapovat na postgres premennou local_admins

pg_hba.conf ma vlastnu syntax, a roota v predchadzajucom pripade autmaticky namapujeme na postgres nasledovne:

TYPE DATABASE USER ADDRESS METHOD
local all postgres peer map=local_admins

Inak zaznam v hba.confe pre LDAP ma takuto syntax:

host all all “allowed IP” ldap ldapserver=192.168.1.1 ldapbasedn=”cn=users,dc=example,dc=com” ldapbindpasswd=”password” ldapsearchattribute=””

hesla a hashe

Do verzie 10 sa pouzivali pre storovanie DB hesiel 2 metody: plaintext (vyzadovany napr. LDAPom) a md5 (+SSL/TLS). Obe metody su heknutelne odposluchom, alebo dumpom databazy.

Technologia SCRAM-SHA-256 – must see.

male triky

  • pokial zabudnes heslo pre rolu postgres a nemas trust medzi rootom a postgresom, tak si vyedituj pg_hba.conf a zmen md5 na trust, po prihlaseni ALTER ROLE postgres…
  • Je lepsie pouzivat \password na psql konzole, nez ALTER USER xyz WITH PASSWORD ‘abcd’; V prvom pripade totiz novy password nie je v historii psql konzoly.

píše: ďobo

September 17th, 2020 o 2:24 pm

chlievik: postgresql

okomentuj