|
утраченные с момента последнего резервирования. Поскольку журнал изменений
является текстовым файлом, можно просмотреть команды SQL для поиска конкретных
данных.
Каким бы методом вы не пользовались для резервирования, производите его часто и
периодически проверяйте возможность реального восстановления своих данных.
Многие администраторы баз данных старательно сохраняли резервные данные лишь
для того, чтобы в один прекрасный день убедиться, что в результате ошибки -
оператора, программы или носителя информации - их резервные копии стали
абсолютно бесполезны.
Система безопасности
Вам не только нужно иметь надежный доступ к своим данным, но и быть уверенным,
что у других нет никакого доступа к ним. MySQL использует собственный сервер
баз данных для обеспечения безопасности. При первоначальной установке MySQL
создается база данных под названием «mysql». В этой базе есть пять таблиц: db,
host, user, tab-les_priv, и columns_priv . Более новые версии MySQL создают
также базу данных с названием func, но она не имеет отношения к безопасности.
MySQL использует эти таблицы для определения того, кому что позволено делать.
Таблица user содержит данные по безопасности, относящиеся к серверу в целом.
Таблица host содержит права доступа к серверу для удаленных компьютеров. И
наконец, db, tables_priv и со-lumns_priv управляют доступом к отдельным базам
данных, таблицам и колонкам.
Мы кратко рассмотрим все таблицы, поддерживающие безопасность в MySQL, а затем
рассмотрим технологию их использования при обеспечении защиты ядром MySQL.
Таблица user
Таблица user имеет вид, показанный в Таблице 4-1:
Таблица 4-1. Таблица user
ПолеТипNullКлючЗначениеПримеч.по умолчаниюHostchar(60)PRIUserchar(16)PRI
ПолеТипNullКлючЗначениеПримеч.по умолчаниюPasswordchar(16)Select_privenum('N',
'Y')NInsert priv enum('N','Y') N Update_privenum('N','Y')NDelete_privenum('N',
'Y')NCreate_privenum('N','Y')NDrop privenum('N','Y')NReload privenum('N','Y')N
Shutdown_privenum('N','Y')NProcess_privenum('N','Y')NFile_privenum('N','Y')N
Grant_privenum('N','Y')NReferences_privenum('N','Y')NIndex_privenum('N','Y')N
Alter_privenum('N','Y')NВ колонках Host и User можно использовать символ «% »,
заменяющий произвольную последовательность символов. Например, имя узла
«chem%lab» включает в себя «chembiolab», «chemtestlab» и т. д. Специальное имя
пользователя «nobody» действует как одиночный «% », то есть охватывает всех
пользователей, не упомянутых где-либо в другом месте. Ниже разъясняется смысл
различных прав доступа:
Select_priv
Возможность выполнять команды SELECT.
Insert__priv
Возможность выполнять команды INSERT.
Update_priv
Возможность выполнять команды UPDATE.
Delete_priv
Возможность выполнять команды DELETE.
Createjyriv
Возможность выполнять команды CREATE или создавать базы данных.
Drop_priv
Возможность выполнять команды DROP для удаления баз данных.
Reload_priv
Возможность перезагружать информацию о доступе с помощью mysqladmin reload.
Shutdown_priv
Возможность останавливать сервер через mysqladmin shutdown.
Process_priv
Возможность управлять процессами сервера.
File_priv
Возможность читать и записывать файлы с помощью команд типа SELECT INTO OUTFILE
и LOAD DATA INFILE.
Grant_priv
Возможность давать привилегии другим пользователям.
Index_priv
Возможность создавать и уничтожать индексы.
Alter_priv
Возможность выполнять команду ALTER TABLE.
В MySQL есть специальная функция, позволяющая скрыть пароли от любопытных глаз.
Функция password() зашифровывает пароль. Ниже показано, как использовать
функцию password() в процессе добавления пользователей в систему.
INSERT INTO user (Host, User, Password, Select_priv,
Insert_priv, Update_priv, Dclete_priv)
VALUES ('%', 'bob', password('mypass'), 'Y', 'Y', 'Y'.'Y')
INSERT INTO user (Host, User, Password, Select_priv)
VALUES ('athens.imaginary.com', 'jane', '', 'Y')
INSERT INTO user (Host, User, Password)
VALUES ('%', 'nobody', ")
INSERT INTO user (Host, User, Password, Select_pnv,
Insert_priv, Updatejriv, Delete_priv)
VALUES ('athens.imaginary.com', 'nobody',
password('thispass'), 'Y', 'Y', 'Y', 'Y')
Имена пользователей MySQL обычно не связаны с именами пользователей
|
|