nocmatic / prevozi

Pri predmetu Osnove podatkovnih baz bova izdelala aplikacijo, na katero bodo lahko uporabniki dodali prevoze, ki jih ponujajo, ocenili uporabnika,
MIT License
0 stars 1 forks source link

Pravice in prijava na bazo #4

Open jaanos opened 7 years ago

jaanos commented 7 years ago

Da bosta lahko oba delala na bazi (vsak s svojim uporabniškim imenom), jaz (ali kdorkoli) pa lahko poganjal aplikacijo, poskrbita za ustrezne pravice dostopa za bazo.

Najprej naj lastnik baze poskrbi, da se bosta lahko oba povezala na bazo in v njej ustvarjala tabele:

GRANT CONNECT ON DATABASE sem2017_lukap TO maticn WITH GRANT OPTION;
GRANT ALL ON SCHEMA public TO maticn WITH GRANT OPTION;

Tako se bosta lahko oba povezala na bazo sem2017_lukap, vsak s svojim uporabniškim imenom in geslom. Ko nekdo ustvari tabelo (ali drug objekt v bazi), je samo sam lastnik, zato naj da še drugemu pravice. Najlažje bo, če po ustvarjanju tabel kar na vseh tabelah in števcih dasta pravice obema (tako da ne bo pomembno, kdo je ustvaril tabele):

GRANT ALL ON ALL TABLES IN SCHEMA public TO lukap WITH GRANT OPTION;
GRANT ALL ON ALL TABLES IN SCHEMA public TO maticn WITH GRANT OPTION;
GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO lukap WITH GRANT OPTION;
GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO maticn WITH GRANT OPTION;

Potem bosta lahko oba urejala tabele.

Da bo možna uporaba aplikacije, dodelita ustrezne pravice uporabniku javnost. Za začetek bo najbrž dovolj, da lahko bere podatke iz baze:

GRANT CONNECT ON DATABASE sem2017_lukap TO javnost;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO javnost;

Če bosta potrebovala, mu bosta dala še ustrezne pravice spreminjanja tabel. Pazita na to, da dasta še pravico uporabe ustreznega števca (USAGE), če dajeta pravico vstavljanja v tabelo s stolpcem tipa SERIAL.

Kot sem napisal v #2, dajta na repozitorij datoteko auth_public.py (zamenjajta samo ime baze), da bo mogoča uporaba aplikacije. Namesto nje naj bo v .gitignore vrstica auth.py - v tej datoteki bo vsak od vaju imel svoje geslo. To datoteko tudi vključita v program za polnjenje baze (namesto auth_public).