Схвалено кращими українськими програмістами 1
уется, як використовувати клієнт mysql для завдання нових користувачів. У прикладах передбачається, що привілеї встановлені відповідно до прийнятих за замовчуванням значеннями, описаними в попередньому розділі. Це означає, що для внесення змін на тому ж комп'ютері, де запущено mysqld. необхідно під'єднатися до сервера як користувач MySQL root. і у користувача root повинна бути привілей INSERT для бази даних mysql. а також адміністративна привілей RELOAD. Крім того, якщо був змінений пароль користувача root. його необхідно вказати тут для команди mysql.
Нових користувачів можна додавати, використовуючи команду GRANT.
Ці команди GRANT створюють трьох нових користувачів:
monty Повноцінний привілейований користувач - він може приєднуватися до сервера звідки завгодно, але повинен використовувати для цього пароль some_pass. Зверніть увагу на те, що ми повинні застосувати оператори GRANT як для monty @ localhost. так і для monty @ "%". Якщо не додати запис з localhost. запис анонімного користувача для localhost. яка створюється за допомогою mysql_install_db. буде мати перевагу при приєднанні з локального комп'ютера, так як в ній зазначено більш певне значення для поля Host. і вона розташована раніше в таблиці user. admin Користувач, який може приєднуватися з localhost без пароля; йому призначені адміністративні привілеї RELOAD і PROCESS. Ці привілеї дозволяють користувачеві запускати команди mysqladmin reload. mysqladmin refres h і mysqladmin flush- *. а також mysqladmin processlist. Йому не призначено ніяких привілеїв, що відносяться до баз даних (їх можна призначити пізніше, додатково застосувавши оператор GRANT). dummy Користувач, який може приєднуватися до сервера без пароля, але тільки з локального комп'ютера. Всі глобальні привілеї встановлені в значення 'N' -тип привілеї USAGE. який дозволяє створювати користувачів без привілеїв. Передбачається, що відносяться до баз даних привілеї будуть призначені пізніше.
Можна безпосередньо додати таку саму інформацію про користувача за допомогою оператора INSERT. а потім дати сервера команду перезавантажити таблиці призначення привілеїв:
Залежно від версії MySQL в прикладі, наведеному вище, може вказуватися різну кількість значень 'Y' (у версіях до Version 3.22.11 було менше стовпців привілеїв). Для користувача admin використовується більш чіткий розширений синтаксис команди INSERT. який доступний починаючи з версії 3.22.11.
Зверніть увагу: щоб створити суперкористувача, необхідно створити запис таблиці user з полями привілеїв, встановленими в значення 'Y'. Немає необхідності задавати значення в записах таблиць db або host.
Стовпці привілеїв в таблиці user в останньому операторі INSERT (для користувача dummy) були задані явно, тому даними стовпцями був присвоєно прийняте за замовчуванням значення 'N'. Точно так само діє команда GRANT USAGE.
У наведеному нижче прикладі додається користувач custom. який може приєднуватися з комп'ютерів localhost. server.domain і whitehouse.gov. Він хоче отримувати доступ до бази даних bankaccount тільки з комп'ютера localhost. до бази даних expenses - тільки з whitehouse.gov. і до бази даних customer - з усіх трьох комп'ютерів, а також використовувати пароль stupid при приєднанні з усіх трьох комп'ютерів.
Щоб задати ці привілеї користувача за допомогою оператора GRANT. виконайте наступні команди:
Привілеї для користувача custom ми призначаємо тому, що цей користувач хоче отримувати доступ до MySQL як з локального комп'ютера через сокети Unix, так і з віддаленого комп'ютера whitehouse.gov через протокол TCP / IP.
Щоб задати привілеї користувача шляхом безпосереднього внесення змін до таблиці призначення привілеїв, виконайте наступні команди (зверніть увагу на команду FLUSH PRIVILEGES в кінці прикладу):
Перші три оператора INSERT додають в таблицю user записи, які дозволять користувачеві custom підключатися з різних комп'ютерів з зазначеним паролем, але не дають йому ніяких привілеїв (всі привілеї встановлені в прийняте за замовчуванням значення 'N'). Наступні три оператора INSERT додають записи в таблицю db. в якій призначаються привілеї для користувача custom по відношенню до баз даних bankaccount. expenses і customer, але тільки якщо доступ здійснюється з певних комп'ютерів. Як завжди, після внесення змін безпосередньо в таблиці призначення привілеїв сервера необхідно дати команду на перезавантаження цих таблиць (за допомогою FLUSH PRIVILEGES), щоб внесені зміни вступили в силу.
Якщо необхідно надати певному користувачеві доступ з будь-якого комп'ютера до певного домену, можна скористатися оператором GRANT наступним чином:
Щоб зробити те ж саме шляхом безпосереднього внесення змін до таблиці призначення привілеїв, виконайте наступні дії:
MySQL.RU. Схвалено кращими українськими програмістами