Pro vytváření účtů a přidělování práv slouží příkaz GRANT. Jeho úplná syntaxe je:
GRANT oprávnění (sloupce)
ON pro_co
TO účet IDENTIFIED BY 'heslo'
REQUIRE požadavky_na_šifrování
WITH volby_pro_udělování_práv
Uživatelé a jejich účty jsou popsány v tabulce user v databázi mysql. Veškerá administrace uživatelů je jen manipulace s touto tabulkou. Pro jednoduchost si uvedeme ukázky některých základních administrativních úkonů.
Vytvoření nového uživatele:
mysql>use mysqlmysql>INSER INTO user (user,host) VALUES ('tomas', 'station.firma.cz');Query OK, 1 row affected (0.02 sec)
mysql> GRANT ALL ON tomb.* TO tomas IDENTIFIED BY 'heslo123';Odstranění/zrušení existujícího uživatele provedeme smazáním příslušné řádky v tabulce. Protože uživatelé jsou identifikováni jménem a stroje ze kterého přistupují nesmíme zapomenout do klauzule WHERE uvést omezující podmínku na sloupec host. V opačném případě smažeme všechny záznamy stejného jména, což nemusí být vždy žádoucí.
mysql>DELETE FROM user WHERE user='tomas' AND host='station.firma.cz');Query OK, 1 row affected (0.15 sec)
Pro změnu hesla uživatel můžeme použít příkaz SET PASSWORD například takto
mysql>SET PASSWORD FOR 'tomas'@'station.firma.cz' = PASSWORD('heslo123');ERROR 1133: Can't find any matching row in the user table
Nebo můžeme standardním UPDATE přímo změnit odovídající řadek či řádky v tabulce user
mysql>UPDATE user SET password=PASSWORD('heslo123') WHERE user='tomas' AND host='station.firma.cz';Query OK, 1 row affected (0.06 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql>CREATE DATABASE mojedb;mysql>CREATE USER ja;mysql>GRANT ALL PRIVILEGES ON mojedb.* TO 'ja'@'%' IDENTIFIED BY 'heslo' WITH GRANT OPTION;