Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] problem z dodaniem usera
Forum PHP.pl > Forum > Bazy danych > MySQL
yacooh
Czesc, mam baze o nazwie data, loguje sie do bazy na konto root i tworze usera takim oto kodem:
  1. mysql> GRANT ALL
  2. -> ON DATA.*
  3. -> TO fred IDENTIFIED BY 'fred'
  4. -> WITH GRANT OPTION;

uzytkownik tworzony jest poprawnie, moge sie nim logowac do bazy i robic rozne zapytania, ale nie moge z jego poziomu dodawac nowych uzytkownikow. Otrzymuje komunikat:
  1. ERROR 1410 (42000): You are NOT allowed TO CREATE a user WITH GRANT

Myslalem, ze przy tworzeniu usera fred wystarczy dodac ostatnia linijke jaka dodalem, zeby ten uzytkownik mogl dodawac nowych. Czy musze jeszcze dodawac jakies prawa dla uzytkownika fred w bazie mysql w tabeli user i db ?


PS. Dodam, ze wersja mysql to 5.0.22

ok, wiec moze napiszcie mi w jaki sposob Wy dodajecie userow z przywilejami dodawania nowych uzytkownikow smile.gif
SongoQ
Grant dla do zakladania userow to:

  1. GRANT CREATE USER ON * . * TO .......


A grant do pelnych praw to:

  1. GRANT ALL PRIVILEGES ON *.* TO .........
yacooh
Wiec skoro ja dalem userowi wszystkie prawa (ALL) wiec posiada on takze prawa tworzenia nowego uzytkownika (CREATE USER), a ostatnia opcja powinna dawac mu mozliwosc nadawania praw nowo stworzonemu userowi. Tak niestety sie nie dzieje.

Byc moze ja czegos nie rozumiem i krece wiec jezeli mozesz to napisz mi kod, ktory stworzy mi usera FRED, majacego pelny dostep do bazy data i mogacego tworzyc nowych uzytkownikow i nadawac im prawa wylacznie do tabel z bazy data.

wychodzi na to, ze powinienem zrobic tak:
  1. mysql> GRANT ALL
  2. -> ON DATA.*
  3. -> TO fred IDENTIFIED BY 'fred'
  4. -> WITH GRANT OPTION;

nastepnie nadac fredowi uprawnienia do wykonywania INSERT na tabeli mysql:
  1. mysql> GRANT INSERT
  2. -> ON mysql.*
  3. -> TO fred IDENTIFIED BY 'fred'
  4. -> WITH GRANT OPTION;

i dopiero wtedy fred bedzie mogl nadawac uprawnienia i tworzyc nowych uzytkownikow. Tylko mam pytanie, czy tym kodem (konkretnie INSERT na mysql.*) nie dalem mu za duzych przywilejow? Moze trzeba je jakos jeszcze ukrocic ?
SongoQ
Sprawdz takie cos:

  1. CREATE USER 'fred'@'%'


  1. GRANT CREATE USER ON * . * TO 'fred'@'%'


Sprawdzalem i dziala.


Cytat
Wiec skoro ja dalem userowi wszystkie prawa (ALL) wiec posiada on takze prawa tworzenia nowego uzytkownika


Zobacz jak w pierwszym poscie napisalem na pewno samo ALL questionmark.gif

Cytat
i dopiero wtedy fred bedzie mogl nadawac uprawnienia i tworzyc nowych uzytkownikow. Tylko mam pytanie, czy tym kodem (konkretnie INSERT na mysql.*) nie dalem mu za duzych przywilejow? Moze trzeba je jakos jeszcze ukrocic ?

Pisanie po tabeli mysql to glupota do tego sluzy grant i revoke
yacooh
Cytat(SongoQ @ 4.09.2006, 22:50:15 ) *
  1. GRANT CREATE USER ON * . * TO 'fred'@'%'

czy w tej linijce nie jest powiedziane, ze fred bedzie mogl tworzyc nowych uzytkownikow dla wszystkich baz ? Mnie interesuje dostep do tylko jednej bazy smile.gif
yacooh
sprobuj tak:
  1. GRANT SELECT, CREATE, INSERT, MODIFY, DELETE ON dane.* TO 'tomek'@'localhost' IDENTIFIED BY 'haslo';
xyan
niestety, wywala mi 'You have an error in your SQL syntax; check the manual...'

ok, już działa wszystko...

pzdr
yacooh
zrobilem w ten sposob:
  1. GRANT CREATE USER ON *.* TO 'fred'@'localhost' IDENTIFIED BY 'fred';
  2. GRANT ALL ON test.* TO 'fred'@'localhost' IDENTIFIED BY 'fred' WITH GRANT OPTION;
  3. FLUSH PRIVILEGES;

i wszystko zdaje sie dzialac smile.gif Dziekuje za odzew.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.