Создание (добавление) и удаление учетных записей пользователей, а также назначение им привилегий осуществляется командами GRANT и REVOKE соответственно.
Синтаксис команд GRANT и REVOKE:
GRANT <тип привилегии> ОN <таблица>TO <имя пользователя> [IDENTIFIED BY <пароль>];REVOKE <тип привилегии> ON <таблица> FROM <имя пользователя>;
Название таблицы при назначении привилегий пользователю может задаваться в формате <название базы данных>.<таблица>. Если указать в качестве названия БД или таблицы символ *, то это будет означать, что привилегия относится ко всем БД или таблицам.
Имена новых пользователей можно добавить, применяя команду GRANT. Учетная запись пользователя admin с паролем somepass, имеющего полный набор привилегий, с правом локального подключения к серверу создается командой:GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'somepass';Учетная запись пользователя petrov с паролем 'petrovpass', имеющего привилегию на выборку информации из БД test, с правом подключения к серверу с любого сетевого адреса создается командой:GRANT SELECT ON test.* TO petrov@'%' IDENTIFIED BY 'petrovpass';Учетная запись пользователя user с паролем userpass, имеющего привилегии выборки, модификации и вставки данных во всех БД, с правом локального подключения к серверу создается командой:mysql> GRANT SELECT, UPDATE, INSERT ON *.* TO user@localhost IDENTIFIED BY 'userpass';
Для корректной работы локальных пользователей системы необходимо удалить запись анонимного пользователя:
DROP USER ' '@localhost;
Чтобы обновить настройки привилегий сервера без перезагрузки применяется команда:
FLUSH PRIVILEGES;
Для проверки работы системы привилегий необходимо подключиться к СУБД под именем созданного пользователя:
c:\>mysql –uadmin –p
Параметр –p означает необходимость ввода пароля при подключении к серверу. Вид окна клиентской программы с примерами использования различных учетных записей пользователей СУБД приведен на рис. 3.
Рис. 3. Вид окна клиентской программы с примерами использования различных учетных записей пользователей СУБД
Из примеров использования учетных записей (см. рис. 3) видно, что пользователь admin может обращаться к системной БД mysql и получать сведения о конфигурации сервера. Пользователь petrov имеет доступ только к БД test, при его попытке обратиться к другим БД возникает ошибка.