Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Привилегии в MySQL




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

Проверка пользователя осуществляется по трем полям таблицы user (host, user и password) базы mysql. Сервер устанавливает соединение только в том случае, если находит в таблице user запись, в которой имя пользователя и пароль совпадают с введенными значениями.

Посмотреть, в каком виде хранятся пароли в таблице user можно при помощи следующих команд:

mysql>USE mysql

mysql>SELECT password FROM user;

 

Ознакомиться со всеми таблицами базы mysql можно подав команду

mysql>show tables;

 

 

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

Список привилегий представлен ниже:

Привилегия К чему применяется
ALTER Таблицы
DELETE Таблицы
INDEX Таблицы
INSERT Таблицы
SELECT Таблицы
UPDATE Таблицы
CREATE Базы данных, таблицы или индексы
DROP Базы данных или таблицы
GRANT Базы данных или таблицы
SHOW DATABASES Администрирование сервера
SHUTDOWN Администрирование сервера

 

Сервер MySQL считывает со­держимое этих таблиц во время запуска и в случаях, когда изменения в при­вилегиях вступают в силу.

Привилегии SELECT, INSERT, UPDATE И DELETE позволяют выполнять операции над строками таблиц баз данных. Привилегия index обеспечивает создание или уничтожение индексов. Привилегия alter позволяет использовать ко­манду alter table. Привилегии create и drop позволяют создавать новые или уничтожать существующие базы данных и таблицы. Привилегия GRANT gram позволяет вам предоставлять другим пользователям привилегии, которыми обладаете вы сами.

Остальные привилегии используются для администрирования SQL – сервера.. Команда shutdown завершает работу сервера.

При запуске сервера MySQL все сведения о привилегиях пользователей загружаются в память, и с этого момента привилегии вступают в силу.

Команды grant и revoke позволяют системным администраторам создавать пользователей MySQL а также предоставлять права пользователям или лишать их прав на четырех уровнях.

· Глобальный уровень.

Глобальные привилегии применяются ко всем базам данных на указанном сервере. Эти привилегии хранятся в таблице mysql.user.

· Уровень базы данных.

Привилегии базы данных применяются ко всем таблицам указанной базы данных. Эти привилегии хранятся в таблицах mysql .db и mysql .host.

· Уровень таблицы.

Привилегии таблицы применяются ко всем столбцам указанной таблицы.
Эти привилегии хранятся в таблице mysql. tables_priv.

· Уровень столбца.

Привилегии столбца применяются к отдельным столбцам указанной таблицы. Эти привилегии хранятся в таблице mysql .columns_priv.

Команда grant позволяет добавлять новых пользователей сервера:

mysql> GRANT SELECT, INSERT ON taxi.* TO Mike@localhost

IDENTIFIED BY 'secret';

 

 

Эта команда дает права insert и select на базу taxi (на все таблицы - это задается символом звездочки) пользователю Mike, который подключается локально (localhost), причем, при подключении к серверу пользователь должен указать пароль 'secret. Пароль хранится на сервере в зашифрованном виде.

mysql> GRANT ALL PRIVILEGES ON *.* TO Ann@"%"

->IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

 

Здесь Anna получает все права (all privileges) на все таблицы всех баз сервера (* . *), причем подключаться она может как локально, так и удаленно через сеть (это указано символом % после Anna@). Вдобавок Anna может передавать свои права другим пользователям (with grant option), т. е. сама может подавать команду grant и создавать новых пользователей системы.

mysql> GRANT USAGE ON *.* TO dummy@localhost

IDENTIFIED BY ‘password’;

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

Команда REVOKE позволяет администратору лишать пользователей прав:

REVOKE SELECT (use_on) ON taxi.timetable FROM Mike @ localhost;

 

 

Пользователь Mike не может просматривать значения поля use_on в таблице timetable.

Команда set может устанавливать различные опции, влияющие на работу
сервера или клиента. Пароль для пользователя root также можно задать с помощью этой команды:

mysql> SET PASSWORD FOR root@localhost=PASSWORD('new_password’) ;

Пользователи могут работать и непосредственно с таблицами назначения привилегий:

mysql> USE mysql;

Mysql> UPDATE user SET Password=PASSWORD('new_password')

-> WHERE user='root';

 

После этого следует подать команду, заставляющую сервер перечитать таблицы привилегий — тогда они вступят в силу:

mysql> FLUSH PRIVILEGES;

 

Если пароль задается при помощи оператора grant. . .identified by, нет необходимости использовать функцию password (). Эта команда самостоятельно производит шифрацию пароля, поэтому пароль следует указывать в простом текстовом виде, например, таким образом:

 

mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';

 

Изменения, которые вносятся в таблицы назначения привилегий при помощи команд grant, revoke или set password, учитываются сервером сразу после выполнения этих инструкций.

 


Поделиться:

Дата добавления: 2014-11-13; просмотров: 137; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты