Понимание пароля MySQL - PullRequest
       14

Понимание пароля MySQL

4 голосов
/ 01 апреля 2012

Вероятно, я не могу стать более тупым, но серьезно, это первый раз, когда мне пришлось подумать об этом (впервые однопользовательское приложение становится многопользовательским из разных мест). Для чего нужен пароль MySQL (или любой другой базы данных)? Пароль, который мы видим в строках подключения, как если бы это было так:

"SERVER=localhost;DATABASE=tree;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200"

Является ли branch кодовым словом для пользователя root для доступа к базе данных tree? Или это root для доступа к любой базе данных MySQL на определенной машине? Или это пароль для любого пользователя для доступа к базе данных tree? Или пароль для любого пользователя для доступа к любой базе данных MySQL на этом компьютере?

Так что мои вопросы в основном?

  1. Является ли пароль специфичным для MySQL, базы данных или пользователя? Или для этого конкретного пользователя для этой конкретной базы данных в этой конкретной установке MySQL? Или их комбинация?

  2. Можем ли мы иметь пароль для самого MySQL (если это не так с branch), можем ли мы иметь пароль для самой базы данных (если это не так с branch) и т. Д.?

Извините за мое невежество;)

Редактировать: Я могу выполнить этот запрос, чтобы удалить мою базу данных:

query = "DROP DATABASE tree";

со строкой подключения:

"SERVER=localhost;UID=root;PASSWORD=branch;Min Pool Size = 0;Max Pool Size=200"

Разве это не означает, что пароль не для базы данных, а для пользователя?

Ответы [ 2 ]

1 голос
/ 04 апреля 2012

1) Является ли пароль, специфичный для MySQL, или базы данных, или пользователь? Или для этого конкретного пользователя для этой конкретной базы данных на этом конкретная установка MySQL? Или их комбинация?

Позвольте мне начать с нуля. В первый раз, когда вы устанавливаете MySQL, вас попросят ввести имя пользователя (скажем, root) и пароль (скажем, root). Это для всего сервера. После подключения к серверу с указанными выше именем пользователя и паролем, вы можете создавать учетные записи пользователей по разным причинам, например: пользователь 'abc' с паролем 'xxx' должен подключаться только к одной базе данных, скажем Test. И другой пользователь 'xyz' с паролем 'aaa' может подключиться к серверу и получить доступ ко всем базам данных, но только с привилегией SELECT.

 CREATE USER 'abc'@'%' IDENTIFIED BY 'xxx'; 
 FLUSH PRIVILEGES; 
 GRANT ALL ON `test`.* TO 'abc'@'%' WITH GRANT OPTION;

Здесь пользователь 'abc' с паролем 'xxx' может подключиться к серверу, но с минимальными привилегиями - только с помощью доступа к тестовой базе данных.

 CREATE USER 'xyz'@'%' IDENTIFIED BY 'aaa'; 
 FLUSH PRIVILEGES; 
 GRANT SELECT ON *.* TO 'xyz'@'%' ;

Этот пользователь - 'xyz' с паролем 'aaa' подключается к серверу только с привилегией SELECT.

Таким образом, три пользователя с разными паролями могут фактически подключаться к серверу с «root» пользователем с паролем «root» имеет все привилегии, тогда как «abc» и «xyz» имеют минимальные привилегии.

Я думаю, что я также ответил на ваш второй вопрос: -)

1 голос
/ 01 апреля 2012

пароль позволяет пользователю подключаться к базе данных.

по одному.

т.е. этот конкретный пользователь может подключиться к этому конкретному экземпляру базы данных с этим конкретным паролем.

...