Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: tworzenie uzytkownikow
Forum PHP.pl > Forum > Bazy danych > MySQL
Zbłąkany
Pytanie moze banalne: czy mozna stworzyc skryptem php uzytkownika i nadac mu prawa do konkretnej bazy lub baz? jesli mozna to jak zmienic mu haslo?? i jeszcze jedno pytanie: jak moge zmienic haslo na roota?? zainstalowalem mysql i ustawilem w my.ini haslo ale serwermysql uparcie twierdzi ze haslo nie zawiera zadnych znakow i musze sie logowac z pustym haslem...
lukaswoj
System uprawnień w MySQL'u jest odwzorowaniem zawartości tabel bazy danych o nazwie 'mysql' i tylko tutaj są trzymane informacje na temat, tego kto(login), skad (host), z jakim haslem i do czego (bazy danych a nawet pojedyncze tabele) ma dostęp.

Dodanie użytkownika do bazy MySQL poprzez php sprowadza się do wykonania zapytania SQL:
[sql:1:8c1b0ca5e4]
GRANT ALL PRIVILEGES ON nazwa_bazy.* to uzytkownik@localhost identified by 'haslohaslo';
[/sql:1:8c1b0ca5e4]

Powyższe zapytanie utworzy użytkownika o loginie "uzytkownik", który będzie mógł się łączyć tylko z "localhosta" (komputer na którym zainstalowana jest baza danych) i będzie on miał pełne prawa (modyfikacja tabel i poszczególnych rekordów) do wszystkich tabel ( "*" ) bazy danych o nazwie "nazwa_bazy".

Zauważ, że po wykonaniu tego polecenia, dodawane są do odpowiednich tabel w bazie "mysql" odpowiednie rekordy.

To polecenie i jego składnia, jest tak jakby interfejsem, który ułatwia korzystanie z systemu uprawnień.

Trzeba pamiętać, że po jakiejkolwiek zmienia uprawnień należy "przeładować uprawnienia" takim zapytaniem:
[sql:1:8c1b0ca5e4]
FLUSH PRIVILEGES;
[/sql:1:8c1b0ca5e4]

Jeśli chodzi o zmianę hasła to zauważ ze w bazie "mysql" w tabeli "users" istnieje pole "Password", więc chcąc zmienić hasło dla danego usera, powinieneś zidentyfikować jego rekord z tabeli "users" za pomocą nazwy użytkownika (pole "User") i hosta (pole "Host") i dla tego rekordu zmienić wartośc pola "Password". Zauważ, też że hasła w tym polu przechowywane są w postaci niejawnej, więc powinieneś przy ręcznej zmianie hasła przepuścić to hasło przez MySQL'ową funkcję PASSWORD(), przykład:
[sql:1:8c1b0ca5e4]
UPDATE users SET Password=PASSWORD('nowe haslo') WHERE User="nazwa_uzytkownika" AND Host="localhost';
[/sql:1:8c1b0ca5e4]

Zmianę hasła można też wykonać komendą dedykowaną (coś jak "GRANT" dla uprawnień), ale nie pamiętam jej smile.gif - zawsze robię to "ręcznie".

A tak swoją drogą to poszukaj jakichś kursów o SQL, napewno jest tam coś napisane o systemie uprawnień.

Myślę, że wyczerpałem temat, ale jak masz jakieś jeszcze pytania to wal śmiało.
Zbłąkany
dzieki jak cos jeszcze mi zabraknie to sie zapytam:)
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.