- •Системы управления базами данных
- •Часть 2
- •Предисловие
- •Лабораторная работа 1
- •1.1. Краткие теоретические сведения
- •1.2. Описание команд и рекомендации к выполнению работы
- •1.3. Создание таблиц базы данных
- •2. Практическая часть
- •1.2 Создание пользователей и задание им прав
- •1.3 Копирование и восстановление бд
- •2. Практическая часть
- •3.Контрольные вопросы
- •Лабораторная работа 3 Индексы и обзоры.
- •1.1. Краткие теоретические сведения
- •1.2. Создание индекса
- •1.3. Оператор explain
- •1.4. Представления (обзоры)
- •2. Практическая часть
- •1.2 Создание и модификация хранимых процедур и функций
- •1.3Синтаксис хранимого кода
- •Практическая часть
- •2. Практическая часть
- •Практические задания
- •3. Контрольные вопросы
- •Лабораторная работа № 7 Работа с Firebird и Interbase в Delphi. Ado компоненты
- •Практические задания
- •Лабораторная работа №8 разработка приложения в среде delphi
- •1.Краткие теоретические сведения
- •2 Практические задания
- •Контрольные вопросы
- •Лабораторная работа №9 Проектирование приложений для работы с бд
- •Краткие теоретические сведения
- •Практические задания
- •3. Контрольные вопросы
- •Лабораторная работа №10 Проектирование отчетов
- •Краткие теоретические сведения
- •2 . Практические задания
- •Лабораторная работа №11 Использование запросов при проектировании приложений
- •Краткие теоретические сведения
- •Практические задания
- •Практические задания
- •2.Практические задания
- •3. Контрольные вопросы
- •Краткие теоретические сведения
- •Практические задания
- •Практические задания
- •3. Практические задания
- •3. Контрольные задания
- •Лабораторная работа 16 Функции php для работы с MySql. Подключение к базе данных MySql.
- •1. Краткие теоретические сведения
- •Практическая часть
- •1.2. Обработка результатов запроса
- •1.3. Функции получения информации о результатах sql-запросов
- •2. Практическая часть
- •Int[(м)]
- •1.1.1. Строковые типы
- •Varchar(m)
- •1.1.2. Типы даты и времени
- •1.2. Функции MySql
- •1.2.1 Функции непосредственно MySql:
- •Ifnull(expr1,expr2)
- •If(expr1,expr2,expr3)
- •1.3. Написание сценариев php с использованием pear::db
- •2. Практическая часть
- •2. Практическая часть
- •3. Контрольные вопросы
1.2 Создание пользователей и задание им прав
Создание (добавление) и удаление учетных записей пользователей производится командой CREATE USER. Синтаксис команды CREATE USER следующий:
CREATE USER <имя пользователя> [IDENTIFIED BY <пароль>];
Удаление учетной записи пользователя производится с помощью команды DROP USER:
DROP USER <имя пользователя>;
Создание (добавление) и удаление учетных записей пользователей, а также назначение им привилегий осуществляется командами GRANT и REVOKE соответственно.
Основные привилегии СУБД MySQL
Название привилегии |
Допустимое действие |
SELECT |
Считывание данных из таблиц |
INSERT |
Вставка данных в таблицы |
UPDATE |
Изменение записей в таблицах |
DELETE |
Удаление записей из таблиц |
INDEX |
Создание или уничтожение индексов |
ALTER |
Модификация структуры таблиц |
CREATE |
Создание таблиц и баз данных |
GRANT |
Предоставление другим пользователям привилегий, которые имеет пользователь |
DROP FILE |
Удаление баз данных или таблиц Чтение и запись файлов на сервере с помощью команд LOAD INFILE и SELECT OUTFILE |
Синтаксис команд GRANT и REVOKE:
GRANT <тип привилегии> [(<столбцы>)] ОN <таблица>
TO <имя пользователя> [IDENTIFIED BY <пароль>];
REVOKE <тип привилегии> [(<столбцы>)] ON <таблица> FROM <имя пользователя>;
Название таблицы при назначении привилегий пользователю может задаваться в формате <название базы данных>.<таблица>. Если указать в качестве названия БД или таблицы символ *, то это будет означать, что привилегия относится ко всем БД или таблицам.
Имена новых пользователей можно добавить, применяя команду GRANT. Учетная запись пользователя admin с паролем somepass, имеющего полный набор привилегий, с правом локального подключения к серверу создается командой:
GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'somepass';
Учетная запись пользователя user с паролем userpass, имеющего привилегии выборки, модификации и вставки данных во всех БД, с правом локального подключения к серверу создается командой:
mysql> GRANT SELECT, UPDATE, INSERT ON *.* TO user@localhost IDENTIFIED BY 'userpass';
Чтобы обновить настройки привилегий сервера без перезагрузки применяется команда:
FLUSH PRIVILEGES;
Для проверки работы системы привилегий необходимо подключиться к СУБД под именем созданного пользователя:
c:\>mysql –u admin –p
Параметр –p означает необходимость ввода пароля при подключении к серверу.
1.3 Копирование и восстановление бд
Утилита mysqldump позволяет получить дамп содержимого базы данных или совокупности баз для создания резервной копии или пересылки данных на другой SQL-сервер (не обязательно MySQL-сервер). Дамп будет содержать набор команд SQL для создания и/или заполнения таблиц.
Так же mysqldump имеет возможность развертывания баз данных из созданного sql-файла.
Пример использования mysqldump для создания дампа базы данных «database» при помощи перенаправления потока в файл «database.sql»:
mysqldump -uroot -hlocalhost -p database > database.sql
-u или --user=... — имя пользователя
-h или --host=... — удаленный хост (для локального хоста можно опустить этот параметр)
-p или --password — запросить пароль
database — имя базы данных
database.sql — файл для дампа
Для того чтобы сделать дамп несколько баз данных, необходимо использовать параметр --databases (или сокращенно -B), пример:
mysqldump -uroot -hlocalhost -p -B database1 database2 database3 > databases.sql
А для того чтобы сделать дамп всех баз данных, необходимо использовать параметр --all-databases (или сокращенно -A), пример:
mysqldump -uroot -hlocalhost -p -A > all-databases.sql
Для того, чтобы развернуть дамп, перенаправляем поток в обратную сторону и развертываем базу данных:
mysql -uroot -hlocalhost -p database < database.sql
Или через mysql-console:
mysql> use database;
mysql> source database.sql