Fórum Root.cz
Hlavní témata => Server => Téma založeno: thcom 13. 12. 2016, 13:23:25
-
ahoj, objevil jsem kouzlo StoredProc :)
zkousim jednu vytvorit a funguje to, ale narazil jsem na problem s opravnenim
ma uzivatele kasa, kteremu k databazi pokladna pridelim prava Procedura Execute
delam to v nastroji adminer
sp ovsem nelze spustit, kdyz ale pridelim prava primo k te dane sp pomoci tabulky procs_priv
tak to slape,
mel jsem za to, ze prava v MySQL funguji tak, ze pokud pridelim uzivateli napr prava Tabulka - Select
a neomezim to v tabulce mysql.db na konkretni databazi, tak to plati pro vsechny database
tak mi to i funguje, ale u sp je to jinak ?
dekuji za pripadne rady
TH
-
zkus dukladne zvazit postgresql...
-
Díky, ale aktuálně asi nemám prostor migrovst celý projekt, ještě zvážim perconu
Teď jsem si vygooglil, že mám zkusit změnit DEFINER u té sp
-
ahoj, objevil jsem kouzlo StoredProc :)
zkousim jednu vytvorit a funguje to, ale narazil jsem na problem s opravnenim
ma uzivatele kasa, kteremu k databazi pokladna pridelim prava Procedura Execute
delam to v nastroji adminer
sp ovsem nelze spustit, kdyz ale pridelim prava primo k te dane sp pomoci tabulky procs_priv
tak to slape,
mel jsem za to, ze prava v MySQL funguji tak, ze pokud pridelim uzivateli napr prava Tabulka - Select
a neomezim to v tabulce mysql.db na konkretni databazi, tak to plati pro vsechny database
tak mi to i funguje, ale u sp je to jinak ?
dekuji za pripadne rady
TH
u SP je to jinak - tady MySQL drží basu se zbytkem a v Postgresu je svébytný.
Uvnitř uložené procedury v MySQL běžíte (bydef) s právy vlastníka procedury (kdo tu proceduru vytvořil). Proto se ještě typicky nastavují práva na spuštění procedury.
V Postgresu je to přesně opačně - defaultně běží s právy volajícího - tudíž se tam typicky nenastavují pak práva na proceduru, jelikož se běžně nemění identita.
-
Díky, ale aktuálně asi nemám prostor migrovst celý projekt, ještě zvážim perconu
Percona je drobet opatchovaný MySQL - v tomto ohledu se bude chovat úplně stejně.
-
tak jsem ze zoufalstvi nainstaloval ten postgress, nejsem schopny se ani pripojit pres adminer :(
nevali se nekde nejaky navod pro uzivatele MySQL ?
dikec TH
-
ROFL
-
tak jsem ze zoufalstvi nainstaloval ten postgress, nejsem schopny se ani pripojit pres adminer :(
nevali se nekde nejaky navod pro uzivatele MySQL ?
dikec TH
http://postgres.cz/wiki/P%C5%99echod_z_MySQL
-
diky moc, uz to lustim, ten navod
http://postgres.cz/wiki/P%C5%99echod_z_MySQL
(http://postgres.cz/wiki/P%C5%99echod_z_MySQL)
jeste me trapi poddotaz, v mysql se to jmenuje Event, jak se to jmenuje v PG ?
a stim souvisejici
da se nejak u toho eventu nastavit, aby se nespustil 2x, tzn trba kdyz ho budu poustet kazdou sekundu ale trval by treba nahodou 3 sec
nebo mam na zacatku nastavit v DB nejaky flag a na konci ho shodit, resi se to takto ?
dekuji moc TH
-
diky moc, uz to lustim, ten navod
http://postgres.cz/wiki/P%C5%99echod_z_MySQL
(http://postgres.cz/wiki/P%C5%99echod_z_MySQL)
jeste me trapi poddotaz, v mysql se to jmenuje Event, jak se to jmenuje v PG ?
a stim souvisejici
da se nejak u toho eventu nastavit, aby se nespustil 2x, tzn trba kdyz ho budu poustet kazdou sekundu ale trval by treba nahodou 3 sec
nebo mam na zacatku nastavit v DB nejaky flag a na konci ho shodit, resi se to takto ?
dekuji moc TH
cron ma minutovou granularitu - pokud potřebujete větší četnost, tak to už je o použití extenzí - pro zabránění opakovaného nechtěného spuštění se používají Advisory Locks - https://www.postgresql.org/docs/current/static/explicit-locking.html