Запит sql на створення (зміна) користувача

Ви тут: Головна - MySQL - SQL - Запит SQL на створення (зміна) користувача

Запит sql на створення (зміна) користувача

У цій невеликій статті ми розберемо SQL-запит. який дозволяє додавати нових користувачів до бази даних. а також змінювати параметри вже існуючих.

Давайте наведу відразу приклад SQL-запиту на створення нового користувача бази даних:

GRANT SELECT. INSERT. UPDATE. CREATE. PROCESS ON *. * TO 'MyUser' @ 'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 10 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 10

Тепер пояснюю синтаксис команди GRANT. Спочатку йде назва команди, потім ми задаємо, які права будуть у користувача. Детально про права користувачів я вже писав, тому пояснювати це не буду. Після опису привілеїв йде прийменник "ON". Тут можна вказати, до якої таблиці або базі даних даний користувач матиме доступ. В даному випадку ми написали "*. *", Що означає, що даний користувач має доступ до будь-якої таблиці будь-якої бази даних. Ми могли б написати так: "db_name. *", Що означало б, що користувач може отримати доступ до будь-якої таблиці бази даних "db_name". Відразу після опису меж доступу йде прийменник "TO", після якого ми задаємо ім'я користувача "MyUser" і хост, з якого він буде мати доступ до бази даних. У нашому випадку це "localhost". Після йде "IDENTIFIED BY" і потім відразу пароль. І остання частина - це "WITH GRANT OPTION", в якій ми задаємо обмеження на використання ресурсів. Про них ми також вже говорили в статті: права користувача.

Тепер давайте розберемо SQL-запит на зміну існуючих користувачів:

GRANT SELECT. INSERT. UPDATE. CREATE. PROCESS ON *. * TO 'MyUser'@'test1.ru' IDENTIFIED BY PASSWORD '565491d704013245' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 10 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 10

Як бачите, синтаксис АБСОЛЮТНО такий же, як і на створення нового користувача. Єдина відмінність - це те, що користувач "MyUser" вже існує. От і все.

І, нарешті, видалення користувача з бази даних. Тут є один цікавий момент. Справа в тому, що дані користувачів бази даних самі зберігаються в таблицях бази даних. Тому, щоб видалити користувача треба видалити записи у відповідних таблицях. Ось код:

DELETE FROM `user` WHERE CONVERT (User USING cp1251) = CONVERT ( 'MyUser' USING cp1251) AND CONVERT (Host USING cp1251) = CONVERT ( 'test1.ru' USING cp1251)
DELETE FROM `db` WHERE CONVERT (User USING cp1251) = CONVERT ( 'MyUser' USING cp1251) AND CONVERT (Host USING cp1251) = CONVERT ( 'test1.ru' USING cp1251)
DELETE FROM `tables_priv` WHERE CONVERT (User USING cp1251) = CONVERT ( 'MyUser' USING cp1251) AND CONVERT (Host USING cp1251) = CONVERT ( 'test1.ru' USING cp1251)
DELETE FROM `columns_priv` WHERE CONVERT (User USING cp1251) = CONVERT ( 'MyUser' USING cp1251) AND CONVERT (Host USING cp1251) = CONVERT ( 'test1.ru' USING cp1251)

Багато, не сперечаюся, але це єдиний спосіб видалити користувача. Або вручну через PHPMyAdmin. Єдине, що треба змінити в цьому шаблоні - це ім'я користувача і хост, а все інше Вам навряд чи доведеться міняти.

Ось ми з Вами і розглянули SQL-запити на створення, редагування і видалення користувачів бази даних.

Схожі статті