Гольцман Виктор
Шрифт:
• Установка пароля пользователя.
В области User Accounts (Учетные записи) щелкните на имени пользователя. В правой области окна на вкладке User Information (Информация о пользователе) введите новый пароль в поля Password (Пароль) и Confirm Password (Подтверждение пароля). Нажмите кнопку Apply Changes (Сохранить изменения). Новый пароль будет установлен для всех учетных записей с данным именем пользователя.
• Удаление пользователя.
В области User Accounts (Учетные записи) щелкните правой кнопкой мыши на имени пользователя и выберите в контекстном меню пункт Delete user (Удалить пользователя). На экране возникнет диалоговая панель, в которой нужно подтвердить удаление, нажав кнопку Yes (Да).
Итак, вы научились выполнять все основные операции с учетными записями пользователей MySQL. Далее вы узнаете, как назначить учетным записям те или иные привилегии доступа.
5.2. Система привилегий доступа
Данный раздел посвящается второму этапу контроля доступа пользователей – проверке привилегий доступа при выполнении каждой операции в базе данных.
Вы узнаете, какие привилегии предусмотрены в MySQL и как предоставить их пользователям.
Общие сведения о системе привилегий доступа
Создание привилегии доступа в MySQL подразумевает определение следующих параметров:
• идентификатор учетной записи пользователя, которому предоставляется привилегия;
• тип привилегии, то есть тип операций, которые будут разрешены пользователю;
• область действия привилегии.
В MySQL используются следующие основные типы привилегий:
• ALL [PRIVILEGES] – предоставляет все привилегии, кроме GRANT OPTION, для указанной области действия;
• ALTER – разрешает выполнение команд ALTER DATABASE и ALTER TABLE;
• CREATE – разрешает выполнение команд CREATE DATABASE и CREATE TABLE;
• CREATE USER – разрешает выполнение команд CREATE USER, DROP USER, RENAME USER;
• DELETE – разрешает выполнение команды DELETE;
• DROP – разрешает выполнение команд DROP DATABASE и DROP TABLE;
• FILE – разрешает чтение и создание файлов на сервере с помощью команд SELECT… INTO OUTFILEи LOAD DATA INFILE;
• INDEX – разрешает выполнение команд CREATE INDEX и DROP INDEX;
• INSERT – разрешает выполнение команды INSERT;
• SELECT – разрешает выполнение команды SELECT;
• LOCK TABLES – разрешает выполнение команды LOCK TABLES при наличии привилегии SELECT для блокируемых таблиц;
• SHOW DATABASES – разрешает отображение всех баз данных при выполнении команды SHOW DATABASES (если эта привилегия отсутствует, то в списке будут отображены только те базы данных, по отношению к которым у пользователя есть какая-либо привилегия);
• RELOAD – разрешает выполнение команды FLUSH;
• SUPER – привилегия администратора сервера; в частности, разрешает выполнение команды SET GLOBAL;
• UPDATE – разрешает выполнение команды UPDATE;
• GRANT OPTION – разрешает назначать и отменять привилегии другим пользователям (эта возможность распространяется только на те привилегии, которые есть у самого пользователя для указанной области действия).
Примечание
Здесь приведены только те типы привилегий, которые требуются для выполнения операций, описанных в данной книге. Полный список типов привилегий вы можете найти в документации компании-разработчика на веб-странице http://dev.mysql.com/doc/refman/5.0/en/privileges-provided.html.
Областью действия привилегии могут быть:
• все базы данных (такие привилегии называются глобальными);
• отдельная база данных;
• таблица;
• столбец таблицы.
Каждый тип привилегии имеет свои допустимые области действия. Так, привилегии FILE, SHOW DATABASES, RELOAD, SUPER и CREATE USER могут быть только глобальными. Привилегия LOCK TABLES может применяться глобально или к отдельным базам данных, но не к отдельным таблицам. К отдельным столбцам таблицы применимы только привилегии SELECT, INSERT и UPDATE.
Чтобы получить разрешение на выполнение операции с каким-либо объектом базы данных, пользователю достаточно иметь привилегию соответствующего типа для какой-либо области действия, содержащей этот объект. Например, пользователь сможет выполнить запрос данных из столбца description (наименование) таблицы Products (Товары) базы данных SalesDept (Отдел продаж), если у него есть хотя бы одна из следующих привилегий:
• глобальная привилегия SELECT;
• привилегия SELECT для базы данных SalesDept;