Witam,

mam pytanie odnośnie tworzenia użytkowników w MySQL 5.5. Jestem rootem i tworzę sobie użytkownika admin: GRANT ALL ON baza.* TO 'admin'@'%' IDENTIFIED BY 'haslo' WITH GRANT OPTION; i admin jest, wszystko działa ale admin nie może tworzyć użytkowników (access denied) tej bazy. Z poziomu admin nie mogę nikomu nadać uprawnień do bazy "baza". W tabeli user w bazie mysql nawet dodawałem GRANT i nic nie działa. Natomiast jeżeli zrobię tak:
GRANT ALL ON *.* TO 'user1'@'%' IDENTIFIED BY 'hasło' WITH GRANT OPTION; to działa ale ja nie chcę aby mój admin miał dostęp do wszystkich baz tylko do jednej i nadawał uprawnienia nowym użytkownikom do jednej bazy nie większe niż on sam posiada. Czy to jest możliwe czy tylko właściciele wszystkich baz mogą korzystać z uprawnienia GRANT??

ekperymetnalnie udało mi się dotrzeć do połowicznego sukcesu:

Użytkownik ROOT tworzy użytkownika:

  1. GRANT ALL ON TESTOWA.* TO 'podroot'@'%' IDENTIFIED BY 'hasło' WITH GRANT OPTION;
podroot taki root na jedną bazę

I dodaje mu jeszcze to:

  1. GRANT SELECT, INSERT, UPDATE ON mysql.* TO 'podroot'@'%' IDENTIFIED BY 'hasło'


teraz podroot może utworzyć użytkownika z dowolnymi uprawnieniami ale tylko do bazy TESTOWA, podroot nie może tworzyć nowych baz, niestety podroot ma insert i update do bazy mysql a to nie dobrze... i nie wiem co dalej bo tak zostać też nie może

Ustaliłem, że w zasadzie wystarczy podrootowi dać uprawnienia insert bez select i update na bazie mysql i to spowoduje, że:

1. Podroot będzie mógł tworzyć konta i nadawać uprawnienia użytkownikom, których sam stworzy, będzie też mógł używać CREATE USER
2. Nie zajrzy do tabel w bazie mysql nie pozmienia, pokasuje nic
3. Nie będzie miał prawa do REVOKE czyli może natworzyć userów, których potem nie usunie ani nie cofnie nadanych przez niego uprawnień,
4. Jedyne co niekorzystnego może nawywijać to zaśmiecić bazę mysql - można to trochę zabezpieczyć przez with max queries per hour ale to półśrodek

także MySQL jest trochę dziwny w tej materii...