REVOKE ALL PRIVILEGES ON `database` . * FROM 'lukasz'@'%'; GRANT USAGE ON `database` . * TO 'lukaszl'@ '%'; GRANT SELECT , INSERT , UPDATE , REFERENCES ON `database`.`klienci` TO 'lukasz'@'%'; GRANT SELECT , INSERT , UPDATE , REFERENCES ON `database`.`kontakty` TO 'lukasz'@'%'; GRANT SELECT , INSERT , UPDATE , DELETE, REFERENCES ON `database`.`notatki` TO 'lukasz'@'%'; GRANT SELECT , INSERT , UPDATE , REFERENCES ON `database`.`urzedy` TO 'lukasz'@'%'; GRANT SELECT , INSERT , UPDATE , REFERENCES ON `database`.`status` TO 'lukasz'@'%';
Istniała jeszcze tabelka notatki_prywatne i tylko niektórzy ze specjalnymi uprawnieniami mieli do nich dostep. Zaistniała jednak konieczność użycia tymczasowych tabelek co wygląda mniej więcej tak:
DROP TABLE IF EXISTS tmp; CREATE TEMPORARY TABLE tmp (SELECT firma,ulica,miejscowosc,kod_pocztowy,max(n.DATA) AS DATA,k.id AS id FROM klienci k,notatki n WHERE miejscowosc LIKE '%kraków%' AND k.id=n.id_klienci GROUP BY id); INSERT INTO tmp ( SELECT firma,ulica,miejscowosc,kod_pocztowy,NULL AS DATA,k.id AS id FROM klienci k WHERE miejscowosc LIKE '%kraków%'); SELECT DISTINCT firma, ulica,miejscowosc,kod_pocztowy,DATA,id FROM tmp GROUP BY id ORDER BY firma DESC; DROP TABLE IF EXISTS tmp;
No i żeby powyższe działało musiałem zdefiniować następujące uprawniena globalne:
GRANT SELECT INSERT , DROP , CREATE TEMPORARY TABLES , LOCK TABLES ON `database` . * TO 'lukasz'@'%';
Jak nietrudno się domyślić rozwaliło mi to całkiem dotychczasowy system przywilejów. Co zrobić, zostaje tylko tworzenie własnej tabeli z uprawnieniami i pozostawienie tych globalnych czy jest jakiś inny sposób? Please help....
