MySQL: створення користувача, який може з'єднуватися з декількох хостів


30

Я використовую MySQL, і мені потрібно створити обліковий запис, який може з'єднуватися як з localhost, так і з іншого сервера, тобто 10.1.1.1. Тому я роблю:

CREATE USER 'bob'@'localhost' IDENTIFIED BY 'password123';
CREATE USER 'bob'@'10.1.1.1' IDENTIFIED BY 'password123';
GRANT SELECT, INSERT, UPDATE, DELETE on MyDatabse.* to 'bob'@'localhost', 'bob'@'10.1.1.1';

Це прекрасно працює, але чи є який-небудь елегантний спосіб створити обліковий запис користувача, який пов’язаний з декількома IP-адресами чи це потрібно зробити так?

Моє головне хвилювання полягає в тому, що в майбутньому дозволи буде оновлено для одного облікового запису "bob", але не для іншого.

Відповіді:


20

Якщо ви хочете обмежитися хостом і не хочете вказувати на основі підмережі або підстановки за допомогою %, це єдиний спосіб зробити це. Більш детальна інформація доступна в документації на MySQL .

Я все ще намагаюся знайти способи усунення накладних витрат при керуванні автентифікацією великих установок MySQL, і ще не знайти ідеального рішення.


8

Почнемо із створення нового користувача під назвою "chaminda" в оболонці MySQL:

CREATE USER 'chaminda'@'%' IDENTIFIED BY 'password';

Перше, що потрібно зробити - це надати користувачеві необхідний дозвіл, і тут я дав увесь дозвіл конкретному користувачеві.

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'%';

Перезавантажте всі привілеї.

FLUSH PRIVILEGES;

Якщо ви хочете дозволити діапазон IP-адрес для певного користувача, використовуйте наступне: 10.1.1%

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'10.1.1.%';

Примітка. Тут ім'я хоста =%, і це означає, що ви можете отримати доступ до цього сервера баз даних з будь-якого хоста. Надання користувачеві всіх пільг є великим ризиком, і це не найкраща практика. Далі ви можете замінити користувача "chaminda" на "bob".


5
Це не відповідає на запитання. Він надає користувачеві доступ з усіх IP-адрес, але ОП запитує про більш елегантний спосіб дозволити одному користувачеві отримати доступ до бази даних зі списку IP-адрес. В основному, замість декількох висловлювань, щоб додати користувача кілька разів із декількох IP-адрес, ідея полягає в тому, щоб додати одного користувача, який може отримати доступ до бази даних з декількох IP-адрес, що робить управління простішим і менш схильним до помилок.
Ентоні

Ви також можете використовувати _ як підстановку, як 10.1.1.1__, щоб відповідати 100 -199, але для 200 вам потрібно створити окремий рахунок або скористатися символом%, і також включити 0-99 та 201-255
Chaminda Bandara

-3

MySQL дозволяє використовувати декілька підстановок в одному ряду. Можливе рішення встановити хост для користувача , Bobщоб бути

locahost/10.1.1.1

Довідка:

http://dev.mysql.com/doc/refman/5.1/uk/connection-access.html


Про це не йдеться в документації. Як зазначено в таблиці, /255.255.255.0 є мережевою маскою. Якщо є спосіб перелічити декілька макіяжів у визначенні хоста, це не спосіб зробити.
majikman
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.