- •Назначение и общие характеристики MySql
- •Типы данных в таблицах MySql
- •Основные вопросы настройки MySql
- •Сеанс работы с базой данных в MySql
- •Операторы, возвращающие информацию о сервере и базах данных.
- •Числовые типы данных в MySql
- •Типы данных даты и времени в MySql
- •Символьные типы данных в MySql
- •Запросы на создание баз данных и таблиц.
- •Числовые функции в MySql
- •Функции даты и времени в MySql
- •Символьные функции в MySql
- •Принципы хранения данных в MySql (myisam)
- •Общие принципы организации разграничения прав доступа пользователей в MySql.
- •Задание прав глобального уровня.
- •Задание прав уровня базы данных.
- •Задание прав уровня таблицы.
- •Задание прав уровня столбца.
- •Команды grant и revoke.
- •Интерфейсы пользователя, возможные при использовании MySql.
- •Язык php. Назначение, общий синтаксис.
- •Принципы работы web-сервера с разборщиком php.
- •Переменные в php.
- •Основные алгоритмические структуры в php.
- •Основные функции в php для работы с MySql.
- •Выборка из таблиц и вывод данных при использовании php и mysql.
Общие принципы организации разграничения прав доступа пользователей в MySql.
1.Не предоставлять никому, за исключением root доступа к таблице user базы данных mysql
2.Запретить доступ к файлам на уровне файловой системы
3.Никому не разрешать использование команды LOAD
Система безопасности построена на основе системы привилегий, которая предполагает, что каждый пользователь получает определенный привилегии, то есть указывается какие операции с какими объектами пользователь имеет право производить.
Привилегии на сервере бывают 3 типов:
1)глобальные – на все объекты сервера
2)уровня БД – на конкретную БД
3)уровня таблицы- на конкретную таблицу конкретной БД
4)уровня столбца – на указанный столбец указанной таблицы
Идентификация пользователя производится по имени, паролю и хосту или его IP.
Проверка права на подсоединение к серверу: mysql-клиент предъявляет имя пользователя, сервер определяет имя (или IP) хоста клиента. По данной паре ищется строка в таблице user. Если строка не найдена, то соединение отвергается. Если - найдена, то сверяется пароль.
Проверка прав при исполнении каждого запроса. Для административных запросов и доступа к файлам проверяется только таблица user. Для прочих запросов в начале проверяется таблица user - а нет ли у данного пользователя прав доступа на "глобальном" уровне. Если есть - операция разрешается. Если нет, то проверяются права доступа к конкретной БД с конкретного хоста. Если их достаточно, то доступ дается. Если недостаточно, то к объединению "глобальных" прав и прав БД/хост добавляются права, извлеченные из таблиц tables_priv и columns_priv. Если и этого не хватает, то увы...
"Глобальные" привилегии и изменения пароля вступают в силу только при следующем соединении. Изменения в доступе к БД - при следующей команде use. Изменения в доступе к таблицам и колонкам - при следующем запросе.
Если привилегии на уровне таблиц и колонок используются хотя бы для одного пользователя, то проверки делаются для всех запросов всех пользователей, что очень сильно замедляет работу.
Задание прав глобального уровня.
Глобальные привилегии читаются при присоединении пользователя и применяются. В таблице user записаны все пользователи, даже те, кто не имеет к ней доступ. Все привилегии не глобального уровня проверяются при каждом запросе пользователя
Структура таблицы mysql.user
Host char(60) символьный хранится имя или ip-адрес компа, с кот подключается поль-зователь. Можно использовать шаблоны с символами '%' (любое количество любых символов) и '_' (любой символ).
User char(16) символьный хранится имя пользователя. Пустое поле соответствует лю-бому имени, в данном случае пользователь рассматривается как анонимный и предо-ставленное им имя заменяется на пустое для дальнейших проверок прав доступа.
Password символьный зашифрованный пароль пользователя. Может быть пустым - пользователь также должен предъявить пустой пароль
Привилегии: enum('N','Y'), по умолчанию - 'N'
• select - выборка из строк таблицы
• insert - вставка строки в таблицу
• update - изменение строки таблицы
• delete - удаление строки таблицы
• create - создавать БД/таблицу
• drop - удалять БД/таблицу
• reload - позволяет перечитать таблицу привилегий
• shutdown – разрешает закрытие сервера
• process – разрешает просмотр процесса
• file – разрешает экспорт/импорт данных
• grant – разрешает передавать свои привилегии другим
• index - создавать/удалять индексы таблицы
• alter - изменять формат таблицы, в том числе переименовать ее, что позволяет об-мануть систему прав доступа
