MySQL 5.0. Библиотека программиста
Шрифт:
и
SET PASSWORD FOR \'anna\'@\'%\' = \'*006B99DE1BDA1BE6E1FFF714E764A8FAB0E614DF\
устанавливают пароль newannapassword для пользователя anna, подключающегося с любого компьютера. Эти команды никак не влияют на другие учетные записи, например пароль учетной записи с идентификатором \'anna\'@\'localhost\' не изменится.
Если вы забыли пароль пользователя root и не можете подключиться к серверу для выполнения команды SET PASSWORD, выполните более сложную последовательность действий.
1. Остановите сервер MySQL. Если он был сконфигурирован как сервис Windows, это можно сделать с помощью панели управления (об этом говорилось в подразделе «Запуск и остановка сервера MySQL с панели управления»). Если сервер не был сконфигурирован как сервис Windows, нажмите комбинацию клавиш Ctrl+Alt+Del, в появившемся окне Диспетчер задач Windows перейдите на вкладку Процессы, затем
2. Создайте init-файл. Для этого запустите стандартную программу Windows Блокнот (Пуск → Все программы → Стандартные → Блокнот). В окне программы Блокнот введите следующие SQL-команды (рис. 5.1).
UPDATE mysql.user SET Password=PASSWORD(\'<Новый пароль root>\') WHERE
User=\'root\
FLUSH PRIVILEGES;Внимание!
Важно, чтобы каждая из команд располагалась в одной строке текстового файла, как показано на рис. 5.1.
Для сохранения init-файла нажмите комбинацию клавиш Ctrl+S. В стандартном окне Windows Сохранить как выберите папку, в которую нужно поместить файл (например, C:\). Введите имя файла (например, mysql.init) и нажмите кнопку Сохранить.
3. Откройте окно командной строки Windows. Для этого нажмите кнопку Пуск, в меню выберите пункт Выполнить, в появившемся окне Запуск программы в поле Открыть введите команду cmd и нажмите кнопку OK. На экране возникнет окно командной строки, в которой выполните следующую команду (рис. 5.2):
mysqld-nt –defaults-file=<Путь к файлу my.ini> –init-file=<Путь к init-файлу>
Например,
mysqld-nt –defaults-file=”C:\Program Files\MySQL\MySQL Server 5.0\my.ini” –init-file=C:\mysql.init
(конфигурационный файл my.ini располагается в каталоге, в котором установлена программа MySQL).
4. Остановите сервер MySQL с помощью диспетчера задач, как описано в п. 1, а затем удалите init-файл.
5. Запустите сервер MySQL в обычном режиме. Теперь вы можете использовать новый пароль пользователя root, который был указан в init-файле.
Итак, вы научились работать с паролями пользователей. Теперь рассмотрим операцию удаления пользователя.
Удаление пользователя
Удалить учетную запись вы можете с помощью командыDROP USER <Идентификатор пользователя>;
После удаления пользователь лишается возможности подключаться к серверу MySQL. Однако если на момент удаления пользователь был подключен к серверу, то соединение не прерывается. Вместе с учетной записью удаляются все привилегии доступа для этой записи. Наконец, рассмотрим поиск информации о пользователях, зарегистрированных в системе.
Просмотр учетных записей
Для получения информации о зарегистрированных пользователях выполним запрос к таблице user (Пользователь) системной базы данных mysql, например
SELECT * FROM mysql.user;
Первые три столбца таблицы user нам уже знакомы – это Host, User и Password. Далее следуют столбцы глобальных привилегий, которые мы рассмотрим в разделе «Система привилегий доступа», и, наконец, столбцы, в которых содержатся параметры безопасности соединения и сведения о ресурсах, предоставляемых соединению (эти столбцы остаются за рамками нашего обсуждения).
В следующем подразделе вы узнаете, как оперировать учетными записями пользователей в наглядном интерфейсе графической утилиты MySQL Administrator.
Управление учетными записями в MySQL Administrator
В отличие от сервера MySQL, утилита MySQL Administrator рассматривает пользователей с одинаковыми именами как одного и того же пользователя. Например, учетные записи с идентификаторами \'anna\'@\'localhost\' и \'anna\'@ % представляют для MySQL Administrator одного и того же пользователя anna и им нельзя присвоить разные пароли. Несмотря на это, пользователь может иметь разные привилегии доступа при подключении с разных компьютеров, тем самым совместимость с системой привилегий доступа MySQL в целом сохраняется. Далее вы увидите, как этот принцип работает на практике.
Запустите
Administrator) и в окне соединения с сервером (см. рис. 1.26 в подразделе «Запуск и остановка сервера MySQL с помощью MySQL Administrator») введите параметры соединения. На экране возникнет главное окно MySQL Administrator. В левой области этого окна щелкните пункт User Administration (Управление пользователями).
В левом нижнем углу окна появится область User Accounts (Учетные записи), в которой представлен список зарегистрированных пользователей (рис. 5.3).
Элементы первого уровня в этом списке соответствуют учетным записям вида \'<Имя пользователя>\'@\'%\'. Вложенные элементы соответствуют записям с тем же именем пользователя, но другим хостом. Дважды щелкнув кнопкой мыши на имени пользователя, вы можете открыть или скрыть вложенные элементы.
Например, если для пользователя anna имеются учетные записи с идентификаторами \'anna\'@\'localhost\' и \'anna\'@\'%\', то после щелчка кнопкой мыши на корневом элементе anna вы увидите в правой области окна информацию для учетной записи (см. рис. 5.3), а после щелчка на вложенном элементе localhost – информацию для записи \'anna\'@\'localhost\'. На вкладке User Information (Информация о пользователе) в обоих случаях будут отображены одинаковые сведения, но на остальных вкладках, в частности на вкладке Schema Privileges (Привилегии доступа к базам данных), сведения могут отличаться. Если же для пользователя anna учетная запись \'anna\'@\'%\' не существует, то после щелчка на корневом элементе anna вкладки в правой области станут неактивными.
Помимо просмотра информации о пользователях и хостах, с которых пользователям разрешено подключаться, вы можете выполнить в MySQL Administrator следующие операции:
• Создание нового пользователя.
В правой области главного окна нажмите кнопку Add new user (Добавить нового пользователя). На вкладке User Information (Информация о пользователе) введите имя и пароль нового пользователя. Нажмите кнопку Apply Changes (Сохранить изменения).
Для нового пользователя автоматически создается элемент первого уровня, то есть учетная запись вида \'<Имя пользователя>\'@\'%\'. В дальнейшем вы можете добавить для пользователя другие учетные записи, а эту удалить.
• Добавление новой учетной записи для пользователя.
В области User Accounts (Учетные записи) щелкните правой кнопкой мыши на имени пользователя и выберите в контекстном меню пункт Add host from which the user can connect (Добавить хост, с которого будет разрешено подключаться пользователю). В окне Add Host (Добавление хоста) введите нужное значение (о том, как задать хост или маску хоста для учетной записи, вы узнали из подраздела «Общие сведения об учетных записях»). Нажмите сначала кнопку OK, а затем в главном окне MySQL Administrator кнопку Apply Changes (Сохранить изменения).
• Удаление учетной записи для пользователя.Внимание!
Если для пользователя создана единственная учетная запись, то ее удаление приведет к удалению пользователя.
В области User Accounts (Учетные записи) щелкните правой кнопкой мыши на элементе, который соответствует удаляемой учетной записи, и выберите в контекстном меню пункт Remove host from which the user can connect (Удалить хост, с которого разрешено подключаться пользователю). В правой области главного окна нажмите кнопку Apply Changes (Сохранить изменения).
• Установка пароля пользователя.
В области User Accounts (Учетные записи) щелкните на имени пользователя. В правой области окна на вкладке User Information (Информация о пользователе) введите новый пароль в поля Password (Пароль) и Confirm Password (Подтверждение пароля). Нажмите кнопку Apply Changes (Сохранить изменения). Новый пароль будет установлен для всех учетных записей с данным именем пользователя.
• Удаление пользователя.
В области User Accounts (Учетные записи) щелкните правой кнопкой мыши на имени пользователя и выберите в контекстном меню пункт Delete user (Удалить пользователя). На экране возникнет диалоговая панель, в которой нужно подтвердить удаление, нажав кнопку Yes (Да).
Итак, вы научились выполнять все основные операции с учетными записями пользователей MySQL. Далее вы узнаете, как назначить учетным записям те или иные привилегии доступа.
5.2. Система привилегий доступа
Данный раздел посвящается второму этапу контроля доступа пользователей – проверке привилегий доступа при выполнении каждой операции в базе данных.
Вы узнаете, какие привилегии предусмотрены в MySQL и как предоставить их пользователям.