Создание базы данных
Вид материала | Документы |
СодержаниеCreate database [with grant option] Create temporary tables Grant option Lock tables Show databases GRANT ALL ON samp_db.* to ‘horhe’@’localhost’ identified by ‘123’ |
- Практическая работа № «Создание базы данных», 21.96kb.
- Лекция 2 10. Полнотекстовые базы данных, 133.46kb.
- Ms access Создание базы данных, 34.31kb.
- 11. 09. 2008 Практическая работа №1 ms access. Основные приемы работы с данным Задание, 795.97kb.
- Создание базы данных “Классный, 73.09kb.
- Курс лекций "Базы данных и субд" Ульянов В. С. Лекция Язык sql. Создание таблиц и ограничений, 146.46kb.
- Методические указания к лабораторной работе по курсу "Базы данных", 114.06kb.
- 1 научиться создавать таблицу базы данных в режиме таблицы, 54.71kb.
- Методические рекомендации по созданию информационной базы и работы с ней. Создание, 10.97kb.
- Информационные системы, использующие базы данных: оборудование, программное обеспечение,, 102.98kb.
Создание базы данных
Разделяют несколько этапов создания базы данных:
- создание (инициализация) базы
- Создание таблиц
- Взаимодействие с таблицами посредством операций вставки, выборки, модификации или удаления данных.
Для создания базы данных необходимо подключится к серверу.
Для подключения к серверу используется окно терминала (консоль), где необходимо ввести команду для подключения к серверу:
mysql –h host_name –p –u user_name
Например: mysql –h nvtc.ee -p –u irinaq
Естественно, что заранее должна быть создана условная запись, включающая имя пользователя и пароль. Необходимо, чтобы не был перекрыт доступ к серверу по соответствующему протоколу, в котором работает консоль и происходит соединение.
При подключении к базе данных на сервере, через консоль на этом же сервере, вводить адрес –h host_name не обязательно.
Ключи:
-h –имя сервера, к которому хотите подключиться
-u – имя пользователя, зарегистрированное в СУБД MySQL.
-p - пароль
При соединении с базой данных, установленной локально, часто используется имя пользователя root наделенное максимальными привелегиями, однако лучше использовать определенные имена пользователя и пароли в целях безопасности данных даже на локальной машине.
Для выхода из соединения с сервером используется команда quit.
Для создания новой базы данных необходимо ввести команду CREATE DATABASE:
CREATE DATABASE db_name;
Например: mysql> CREATE DATABASE new_dbase;
После чего можно переходить к созданию таблиц, выбрав созданную данную базу из имеющихся на данном сервере.
Для выбора базы следует использовать команды:
mysql> use db_name;
mysql> select database();
Например:
Но можно использовать другой метод активации указав в строке консоли имя базы данных.
Привилегии и создание пользователей базой.
По умолчанию пользователь локальной базы, тот, кто имеет максимум привилегий по работе со всеми объектами mysql-сервера и баз данных на нем, имеет имя root.
Однако, нужно в целях безопасности создавать пользователей наделенных отдельными полномочиями, которые могли бы работать с базой (базами) данных в строго отведенных для них рамках.
Для создания пользователей и предоставления или лишения их полномочий используются команды GRANT и REVOKE
GRANT privileges [columns]
ON item
TO user_name [IDENTIFIED BY ‘password’]
[WITH GRANT OPTION];
privileges – перечень полномочий, которые должны быть четко описаны в MySQL, разделяются запятыми.
columns – необязательный параметр, его можно использовать к конкретным полям (столбцам) таблиц, если несколько столбцов, то список разделяется запятыми.
item – объект к которому применяются полномочия, может быть базой или таблицей.
значение *.* позволяет применять полномочия ко всем базам данных одновременно. Этот же эффект достигается, если указать знак *.
Чаще всего указывается имя базы в виде db_name.*, если необходимо приенить полномочия ко всем таблицам базы данных. Если же к непосредственно выбранной таблице – то db_name.table_name. Список необходимых столбцов для доступа согласно привилегиям доступен в перечислении [columns].
user_name – имя пользователя под которым можно получить согласно привилегиям доступ к назначенному объекту (базе, таблице, полю).
password – необходимый для входа пароль
IDENTIFIED BY проверяет верность пароля. Если пароля не существует он создается, как впрочем и указание пользователя.
WITH GRANT OPTION – позволяет пользователю устанавливать свои полномочия другим пользователям.
Виды привилегий.
ALTER | изменение таблиц и индексов |
CREATE | создание баз данных и таблиц |
CREATE TEMPORARY TABLES, | создание временных баз данных |
DELETE | Удаление записей из таблиц |
DROP | Удаление баз данных и таблиц |
EXECUTE | Выполнение хранимых процедур |
FILE | Чтение и запись файлов на сервере |
GRANT OPTION | Присвоение привилегий другим пользователям |
INDEX | Создание или удаление индексов |
INSERT | Вставка новых записей в таблицы |
LOCK TABLES | Закрытие таблицы явным образом (блокировка) |
PROCESS | Просмотр информации о сервере и процессах |
RELOAD | Перезагрузка таблиц, обновление журналов, кэша таблиц и компьютера |
SELECT | выборка записей из таблицы |
SHOW DATABASES | Право на использование команды SHOW DATABASES |
SHUTDOWN | Завершение работы сервера |
UPDATE | Изменение существующих записей таблиц |
ALL | Все операции за исключением GRANT |
USAGE | Без привилегий. |
Как правило, создание нового пользователя происходит пользователем наделенным наибольшими полномочиями.
При создании пользователя всех баз данных происходит пользователем root.
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25 to server version: 5.0.18
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> grant all
-> on *.*
-> to georgi identified by '123';
Query OK, 0 rows affected (0.05 sec)
Для просмотра привилегий (полномочий) можно воспользоваться командой SHOW GRANTS FOR ‘user_name’;
mysql> show grants for 'georgi';
+-------------------------------------------------------------------------------
---------------------------------+
| Grants for georgi@%
|
+-------------------------------------------------------------------------------
---------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'georgi'@'%' IDENTIFIED BY PASSWORD '*23AE809DD
ACAF96AF0FD78ED04B6A265E05AA257' |
+-------------------------------------------------------------------------------
---------------------------------+
1 row in set (0.05 sec)
Для ограничения полномочий пользователя необходимо конкретно указать те полномочия, которые мы хотим ему назначить и к какому объекту они длжны применяться:
mysql> grant select, update, insert
-> on proba.sample
-> to horhe identified by '123';
Query OK, 0 rows affected (0.11 sec)
mysql> show grants for 'horhe';
+---------------------------------------------------------+
| Grants for horhe@%
|
+-----------------------------------------------------+
| GRANT USAGE ON *.* TO 'horhe'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0F
D78ED04B6A265E05AA257' |
| GRANT SELECT, INSERT, UPDATE ON `proba`.`sample` TO 'horhe'@'%'
|
+-----------------------------------------------------------------+
2 rows in set (0.00 sec)
Для удаления полномочий существует команда REVOKE.
Удаление всех привелегий пользователя в базе proba
mysql> revoke all
-> on proba.*
-> from horhe;
Query OK, 0 rows affected (0.00 sec)
или отдельных привилегий:
mysql> revoke insert, update
-> on proba.sample
-> from horhe;
Query OK, 0 rows affected (0.06 sec)
mysql> show grants for horhe;
+-------------------------------------------------------------------------------
-----------------------+
| Grants for horhe@%
|
+-------------------------------------------------------------------------------
-----------------------+
| GRANT USAGE ON *.* TO 'horhe'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0F
D78ED04B6A265E05AA257' |
| GRANT SELECT ON `proba`.`sample` TO 'horhe'@'%'
|
+-------------------------------------------------------------------------------
-----------------------+
2 rows in set (0.05 sec)
При соединении с базой данных с удаленного компьютера, для установки привилегий необходимо указывать значение имени пользователя указывая hostname.
Например:
GRANT ALL ON samp_db.* to ‘horhe’@’localhost’ identified by ‘123’;
или же:
GRANT ALL ON samp_db.* to ‘boris’@’area.mars.net’ identified by ‘123’;
При значениях буквенно-цифровых, кавычки не нужны, но если встречаются прочие символы, то обязательно.
Если необходимо подключаться отовсюду, то используется в качестве значений hostname %.
Удаление пользователей.
Имена и парольи всех пользователей хранятся в базе MySQL поэтому, чтобы удалить его неоходимо перейти в базу MySQL
mysql> use mysql;
Database changed
mysql> delete from user
-> where user='horhe';
Query OK, 1 row affected (0.06 sec)
mysql> show grants for horhe;
+-------------------------------------------------------------------------------
-----------------------+
| Grants for horhe@%
|
+-------------------------------------------------------------------------------
-----------------------+
| GRANT USAGE ON *.* TO 'horhe'@'%' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0F
D78ED04B6A265E05AA257' |
| GRANT SELECT ON `proba`.`sample` TO 'horhe'@'%'
|
+-------------------------------------------------------------------------------
-----------------------+
2 rows in set (0.06 sec)