User jogait lekérdező SQL parancs
Szervusztok,
Azt szeretném kérdezni, hogy milyen SQL parancs szolgál arra, hogy lekérdezzem a saját jogaimat? Ezt úgy kell érteni, hogy meg kell tudnom, hogy az useremnek van -e LOCK jogosultsága, és ezért a phpMyAdmin-ban az SQL lekérdezés mezőben szeretném ezt elvégezni. Gondolom a központi táblákhoz legalább elérési jogom van, így az menni fog.
A másik, hogy esetleg az is előfordulhat, hogy nincsen LOCK oszlop a jogosultságok között. Ezt milyen SQL parancs kérdezi le?
Köszönöm!
■ Azt szeretném kérdezni, hogy milyen SQL parancs szolgál arra, hogy lekérdezzem a saját jogaimat? Ezt úgy kell érteni, hogy meg kell tudnom, hogy az useremnek van -e LOCK jogosultsága, és ezért a phpMyAdmin-ban az SQL lekérdezés mezőben szeretném ezt elvégezni. Gondolom a központi táblákhoz legalább elérési jogom van, így az menni fog.
A másik, hogy esetleg az is előfordulhat, hogy nincsen LOCK oszlop a jogosultságok között. Ezt milyen SQL parancs kérdezi le?
Köszönöm!
Szia, hát ahogy látom
Ha magában a MySQL-ben akarod a jogosultságokat megnézni akkor először is neked kell minimum olvasási jogodnak lenni a "mysql" nevü adatbázishoz. Ezen belül vannak azok a táblák amikben többek közt a jogosultságok is tárolódnak. Főképpen az "user" tábla az érdekes, de pl. az adatbázis szintü hozzáférés a "db" táblában van állítva stb. De az "user" táblában mindenképpen szerepelni fog a felhasználó. Szóval ha a felhasználó csak a "proba" nevü adatbázist érheti el, akkor benne lesz az "user" táblában, de itt semmire nem lesz jogosult. Az ő jogai a "db" táblában vannak és csak a "proba" adatbázihoz lesz jogosultsága. Ha te rendszergazda vagy akkor egyszerü SELECT-el is le tudod ezeket kérdezni, hameg nincs rá jogod akkor sehogy. Jogosultságokat kezelni a GRANT, REVOKE utasitással tudsz vagy INSERT/UPDATE-val is esetleg:
Leirás:
http://dev.mysql.com/doc/mysql/en/grant.html
Nagyon röviden, nagyon leegyszerüsitve kb. igy néz ki a dólog. :)
Ja és a MySQL 5-ben már van CREATE USER, DROP USER, RENAME USER parancs is, de ez még élesben nem nagyon használatos sehol.
Köszönöm
Nem admin vagyok, hanem egyszerű user, csak felmerült egy probléma a LOCK jogosultsággal, és most azt szeretném megnézni, hogy van-e rá jogom.
Ha nem tudom lekérdezni azokat a táblákat, akkor mindegy (mármint ha nincs jogom látni őket), de ha igen, akkor onnan ki szeretném olvasni.
Magyarán 2 lekérdezésre lenne szükségem, amiből az ugyik azt mondja meg, hogy létezik-e LOCK oszlop, a másik pedig azt, hogy nekem erre van-e jogosultágom.
A "lock_tables_priv" oszlop
http://dev.mysql.com/doc/mysql/en/privileges-provided.html
Itt le van irva melyik utasításhoz melyik oszlop tartozik, de szerintem ezeknek a lekérdezéséhez nem lesz jogosultságod.
Table szintű hozzáférés
Annak mondjuk nem néztem utána, hogy ilyenkor a user a db táblában benne van-e, vagy csak a table_priv táblában, de egy próbát megérne. Sőt a table_priv táblában oszlop szinten is lehet hozzáférést állítani.
Mondjuk a table szintű hozzáférés esetén nincs lehetőség lock beállítására, szóval az max a db vagy a user táblában található.
Mondjuk ha vmi programból csinálod a cuccot, akkor úgyis fog szólni, hogy nincs LOCK jogosultság, és akkor már meg is van a megfejtés.
--------
Poetro
Nem kerül bele a "db"
GRANT Select, Insert, Update, Delete, Index, Alter, Create, Drop, References ON proba.tablaneve TO 'felhasznalo'@'%'
Igy csak ott lesz benne és persze az "user" táblában. A többi meg sima SQL lekérdezéssel megoldható ahogy irtad is.
tables_priv-ben nincs lock
--------
Poetro
LOCK
Ekkor felhívtam a szolgáltatót, aki telefonálás közben ellenőrizte, hogy milyen jogaim vannak, és mondta, hogy minden létező jogosultság be van állítva.
Ezután Goba-val leveleztem, és Ő mondta, hogy lehetséges, hogy frissítették a rendszerüket, és közben elfelejthettek plusz oszlopot adni, ami ezt a LOCKot kezelné (azaz az adatbázist nem frissítették jól). Tegnap írtam nekik mailt (Goba levelének egy részének idézésével, hogy ne írjak neki hülyeségeket), de nem jött semmi válasz (még annyi sem, hogy vették). Ma írtam nekik mégegyet, hogy megkapták-e az előzőt, de így sem jött semmi.
Most nem tudom, hogy mi van, ezért gondoltam volna, hogy amire lehetőségem van, azt megnézné én, hogy tudjam nekik mondani, hogy EZ a hiba.
Szerkesztés:
Hát igen... az eredmény:
#1044 - Access denied for user: 'unidevsql@localhost' to database 'mysql'
még szerencse
Nem kellene szolgáltatót
Váltani???
Én remélem, hogy meg tudjuk beszélni a dolgokat, és nem lesz belőle elmérgülés.
(egy kis off: ha nagyon nem sikerülne a dolog, akkor emiatt mondhatom, hogy váltani akarok, vagy nem? Ez egy sztenderd szolgáltatás, vagy valami extra?)
Hát szerintem bármikor