MariaDB a práva k uložené proceduře

thcom

  • ***
  • 149
    • ICQ komunikátor - 968601
    • Zobrazit profil
    • E-mail
MariaDB a práva k uložené proceduře
« kdy: 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
« Poslední změna: 13. 12. 2016, 13:46:22 od Petr Krčmář »


Re:mariaDB a prava k UlozeneProcedure
« Odpověď #1 kdy: 13. 12. 2016, 13:36:52 »
zkus dukladne zvazit postgresql...
Děkuji za možnost editace příspěvku.

thcom

  • ***
  • 149
    • ICQ komunikátor - 968601
    • Zobrazit profil
    • E-mail
Re:MariaDB a práva k uložené proceduře
« Odpověď #2 kdy: 13. 12. 2016, 14:04:12 »
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


Re:MariaDB a práva k uložené proceduře
« Odpověď #3 kdy: 13. 12. 2016, 17:37:52 »
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.

Re:MariaDB a práva k uložené proceduře
« Odpověď #4 kdy: 13. 12. 2016, 17:39:33 »
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ě.


thcom

  • ***
  • 149
    • ICQ komunikátor - 968601
    • Zobrazit profil
    • E-mail
Re:MariaDB a práva k uložené proceduře
« Odpověď #5 kdy: 13. 12. 2016, 18:22:56 »
tak jsem ze zoufalstvi nainstaloval ten postgress, nejsem schopny se ani pripojit pres adminer :(
nevali se nekde nejaky navod pro uzivatele MySQL ?

dikec TH

javaman ()

Re:MariaDB a práva k uložené proceduře
« Odpověď #6 kdy: 13. 12. 2016, 18:37:21 »
ROFL

Re:MariaDB a práva k uložené proceduře
« Odpověď #7 kdy: 14. 12. 2016, 14:28:19 »
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

thcom

  • ***
  • 149
    • ICQ komunikátor - 968601
    • Zobrazit profil
    • E-mail
Re:MariaDB a práva k uložené proceduře
« Odpověď #8 kdy: 14. 12. 2016, 15:11:02 »
diky moc, uz to lustim, ten navod

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




Re:MariaDB a práva k uložené proceduře
« Odpověď #9 kdy: 15. 12. 2016, 08:08:41 »
diky moc, uz to lustim, ten navod

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