MySQL: создание пользователя, который может подключаться с нескольких хостов


30

Я использую MySQL, и мне нужно создать учетную запись, которая может подключаться либо с локального хоста, либо с другого сервера, т.е. 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/en/connection-access.html


Это не то, что говорится в документации. Как указано в таблице, /255.255.255.0 является маской сети. Если есть способ перечислить несколько подстановочных знаков в определении хоста, это не способ сделать это.
Маджикман
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.