Чтение онлайн

на главную

Жанры

MySQL 5.0. Библиотека программиста

Гольцман Виктор

Шрифт:
...

Примечание

При проверке доступа пользователей к базе данных используется также таблица host. Однако команды GRANT и REVOKE не затрагивают эту таблицу, и обычно она остается пустой.

• Привилегии, относящиеся к отдельным таблицам, хранятся в таблице tables_ priv. Первичным ключом в этой таблице служат столбцы Host (Хост), Db (База данных), User (Пользователь) и Table_name (Имя таблицы). Таким образом, каждая строка таблицы tables_priv определяет привилегии доступа конкретного пользователя к конкретной таблице. Типы привилегий, которыми обладает пользователь, перечислены в столбце Table_priv (Привилегии доступа к таблице), имеющем тип данных SET. Кроме того, в таблице tables_priv имеется столбец Column_priv (Привилегии доступа к столбцу) с типом данных SET, значение которого указывает, что у пользователя

имеются привилегии доступа к отдельным столбцам таблицы.

• Привилегии для отдельных столбцов хранятся в таблице columns_priv. Первичный ключ этой таблицы состоит из столбцов, идентифицирующих пользователя (Host и User), и столбцов, идентифицирующих столбец (Db, Table_name и Column_name). Типы привилегий, которыми обладает пользователь по отношению к столбцу, перечислены в столбце Column_priv (Привилегии доступа к столбцу) с типом данных SET.

Таблицы user, db, tables_priv и columns_priv вы можете использовать для получения информации о пользователях, обладающих привилегиями доступа к интересующему вас объекту базы данных. Если же требуется, наоборот, узнать, к каким объектам имеет доступ конкретный пользователь, выполните команду

SHOW GRANTS [FOR Идентификатор пользователя>];

Команда SHOW GRANTS выводит сведения о привилегиях пользователя в виде набора команд GRANT, с помощью которых можно сформировать текущий набор привилегий пользователя. Если идентификатор пользователя не задан, вы увидите свои привилегии.

Итак, вы научились добавлять, удалять и просматривать привилегии с помощью специальных команд. Далее вы узнаете, как выполнять те же самые операции в наглядном интерфейсе графической утилиты MySQL Administrator.

Управление привилегиями в MySQL Administrator

В подразделе «Управление учетными записями в MySQL Administrator» вы узнали, каким образом в утилите MySQL Administrator представлена информация о зарегистрированных пользователях. По умолчанию для каждого пользователя отображается вкладка Schema Privileges (Привилегии доступа к базам данных), содержащая сведения о привилегиях, областью действия которых являются отдельные базы данных (рис. 5.4).

Рис. 5.4. Вкладка Schema Privileges

Чтобы увидеть остальные привилегии, выполните следующую настройку.

1. В главном окне MySQL Administrator откройте меню Tools (Сервис) и выберите пункт Options (Параметры).

2. В появившемся окне Options (Параметры) в левой области щелкните на пункте Administrator (Администратор).

3. В правой области в группе полей User Administration (Управление пользователями) установите флажок Show Global Privileges (Отображать глобальные привилегии) и флажок Show Schema Object Privileges (Отображать привилегии для объектов базы данных).

4. Нажмите кнопку Apply (Сохранить), а затем кнопку Close (Закрыть).

После этого в главном окне MySQL Administrator появятся вкладка Global Privileges (рис. 5.5) с информацией о глобальных привилегиях пользователя и вкладка Schema Object Privileges (рис. 5.6) с информацией о привилегиях доступа к отдельным таблицам и столбцам.

Рис. 5.5. Вкладка Global Privileges

Рис. 5.6. Вкладка Schema Object Privileges

Для управления глобальными привилегиями пользователя откройте вкладку Global Privileges. Имеющиеся у пользователя привилегии перечислены в колонке Assigned Privileges (Назначенные привилегии). Отсутствующие у пользователя привилегии перечислены в колонке Available Privileges (Доступные привилегии). Для присвоения и отмены привилегий предназначены кнопки

и

После того как набор привилегий сформирован, нажмите кнопку Apply Changes (Сохранить изменения).

Аналогичным образом выполняется настройка привилегий доступа к отдельным базам данных на вкладке Schema Privileges.

Чтобы просмотреть и отредактировать список привилегий пользователя для какой-либо базы данных, щелкните на названии этой базы в колонке Schemata (Базы данных).

Вкладка Schema Object Privileges отличается от вкладки Schema Privileges только тем, что колонка Schemata содержит иерархическое дерево объектов базы данных. Значок

слева от названия объекта позволяет увидеть список подчиненных объектов, то есть таблиц базы данных или столбцов таблицы. Чтобы просмотреть и отредактировать список привилегий пользователя для какого-либо объекта, найдите этот объект в дереве и щелкните на его названии.

В предыдущем подразделе говорилось, что столбец Column_priv (Привилегии доступа к столбцу) имеется как в таблице columns_priv, так и в таблице tables_priv системной базы данных mysql. В MySQL Administrator привилегии доступа к столбцам (названия таких привилегий начинаются со слова COLUMN) также присутствуют в списках доступных привилегий и для самого столбца, и для содержащей его таблицы. Чтобы присвоить пользователю привилегию доступа к столбцу, ее нужно добавить в список назначенных привилегий дважды: на уровне столбца и на уровне таблицы.

Пусть, например, необходимо предоставить пользователю привилегию на изменение данных в столбце price (цена) в таблице Products (Товары) (аналогично команде GRANT UPDATE (price) ON SalesDept.Products TO \'anna\'@\'localhost\). Для этого щелкните на названии таблицы Products и с помощью кнопки

переместите привилегию COLUMN UPDATE в колонку Assigned Privileges (Назначенные привилегии) (рис. 5.7).

Рис. 5.7. Предоставление привилегии доступа к столбцу. Шаг 1

Затем щелкните на названии столбца price и снова переместите привилегию COLUMN_UPDATE в колонку Assigned Privileges (Назначенные привилегии) (рис. 5.8). Наконец, сохраните созданные привилегии, нажав кнопку Apply Changes (Сохранить изменения).

Рис. 5.8. Предоставление привилегии доступа к столбцу. Шаг 2

Итак, вы научились управлять привилегиями пользователей MySQL с помощью графической утилиты MySQL Administrator. На этом мы завершаем обзор системы привилегий доступа MySQL и переходим к следующей теме – резервному копированию и восстановлению базы данных.

5.3. Резервирование базы данных

Резервное копирование баз данных необходимо, чтобы в случае сбоев операционной системы, файловой системы или разрушения физических носителей информации вы могли восстановить данные из резервной копии и с минимальными потерями продолжить работу. В MySQL предусматривается множество способов резервного копирования данных, так что вы можете выбрать наиболее подходящий для вас.

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

• периодическое полное резервное копирование базы данных;

• ведение двоичных журналов, в которых регистрируются все изменения данных в промежутках между резервными копированиями.

Слишком частое полное резервирование неэффективно, поскольку занимает много времени, а значительная часть данных в базе не успевает измениться. Поэтому наряду с полным резервированием используется промежуточное, которое заключается в копировании двоичных журналов на резервный носитель. Таким образом, даже в случае полного разрушения диска, на котором располагается база данных, вы сможете восстановить не только информацию, сохраненную при полном копировании, но и последующие изменения вплоть до момента последнего промежуточного копирования.

В зависимости от назначения и интенсивности эксплуатации вашей базы данных вы можете подобрать оптимальную частоту полного и промежуточного резервирования. Например, полное резервное копирование может выполняться еженедельно, а промежуточное – ежедневно.

Вначале вы узнаете, как настроить запись информации в двоичные журналы, затем узнаете об организации полного копирования и, наконец, познакомитесь с процедурой восстановления данных в случае сбоя.

Двоичные журналы

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

Поделиться:
Популярные книги

Перестройка миров. Тетралогия

Греков Сергей
Перестройка миров
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Перестройка миров. Тетралогия

Пятничная я. Умереть, чтобы жить

Это Хорошо
Фантастика:
детективная фантастика
6.25
рейтинг книги
Пятничная я. Умереть, чтобы жить

Внешники

Кожевников Павел
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Внешники

Барон ненавидит правила

Ренгач Евгений
8. Закон сильного
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Барон ненавидит правила

Идеальный мир для Лекаря 10

Сапфир Олег
10. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 10

Паладин из прошлого тысячелетия

Еслер Андрей
1. Соприкосновение миров
Фантастика:
боевая фантастика
попаданцы
6.25
рейтинг книги
Паладин из прошлого тысячелетия

Релокант 9

Flow Ascold
9. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Релокант 9

Аристократ из прошлого тысячелетия

Еслер Андрей
3. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Аристократ из прошлого тысячелетия

Три `Д` для миллиардера. Свадебный салон

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
7.14
рейтинг книги
Три `Д` для миллиардера. Свадебный салон

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Я тебя не предавал

Бигси Анна
2. Ворон
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Я тебя не предавал

Земная жена на экспорт

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Земная жена на экспорт

Лорд Системы 7

Токсик Саша
7. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 7

Идеальный мир для Лекаря 2

Сапфир Олег
2. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 2