Adott egy adatbazis, van usere. Hozzaadtam egy uj usert. (uj_user). Adom a jogokat (mysql utan...)
GRANT ALL ON DATABASE db to uj-user;
Szep, tud csatlakozni az uj_user az adatbazishoz, de egy SELECT-et sem tud lefuttatni. probalkozok mashogy:
GRANT SELECT ON DATABASE db to uj-user;
Nem megy, SELECT jog nem adhato adatbazisra.
GRANT SELECT ON table1 to uj_user;
Hopp, mukodik, de semmi humorom 30 tablan vegigmenni....
GRANT SELECT ON * to uj_user;
Nem megy, * nem lehet a tabla (mysql eseten egyszeru, ott a filenevek a tablak, szoval bash scriptbol megoldhato lenne....)
Van ra valami lehetoseg, hoyg az uj user megkapja azokat a jogokat, ami a letrehozo felhasznaloe egyszeruen?
(Bocs, hogy most nem nezem at az egesz pgsql manualt, csak ram lett bizva, hoyg villamgyorsan oldjam meg...)
- 1448 megtekintés
Hozzászólások
Listázd ki a táblákat, majd egyenként adj rá az új usernek megfelelő jogot. Az adatbázisra hiába adsz jogot.
Itt is simán megoldható bash-ból, fut is ilyenem. A psql -c
parancsot/kapcsolót nézegesd
Utána már lehet egyenként:
GRANT SELECT ON tabla1 TO uj-user;
GRANT SELECT ON tabla2 TO uj-user;
vagy tetszőleges ciklussal.
- A hozzászóláshoz be kell jelentkezni
Basszus, tenyleg nincs mas megoldas :( Csak en erzem ezt nagyon gaznak?
- A hozzászóláshoz be kell jelentkezni
Használhatsz role-okat.
- A hozzászóláshoz be kell jelentkezni
Koszi. Volt egy ilyen erzesem. Jelen esetben hogy lehetne ezt egyszeruen , megmondanad, ha szepen kerem?
- A hozzászóláshoz be kell jelentkezni
Csak a doksi alapjan okoskodom, es most nem tudom kiprobalni:
A legegyszerubbnek az tunik, hogy a regi user-hez, mint csoporthoz, hozzaadod az uj usert. Igy pont ugyanazokkal a jogokkal fog rendelkezni.
Tisztabb megoldas talan ez:
- atnevez regiuser -> ujgroup
- ujgroup-tol elvesz LOGIN jog
- felvesz regiuser, hozzaad ujgroup-hoz
- felvesz ujuser, hozzaad ujgroup-hoz
Gyakorlatilag csoportta alakitod a regi usert es a ket usert hozzaadod a csoporthoz.
- A hozzászóláshoz be kell jelentkezni
Koszi szepen. Kozben rajottem, hogy scripttel tenyleg egyszerubb.
psql -c "\dt" db | grep -v "^$" |awk '{print $3}' > tablak
while read ; do psql -c "GRANT ALL ON $REPLY to uj-user;" db; done < tablak
rm tablak
- A hozzászóláshoz be kell jelentkezni
Az alap security elveknek megfelel, mindent tiltasz es egyesevel adod ki a jogokat.
pg_hba.conf -ot nezd at, szerintem az kell neked.
- A hozzászóláshoz be kell jelentkezni