Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Система привилегий и безопасность в MySQL




For further information

We are pleased to inform you about the program.

The Olympics is held in the form of competition in two rounds.
Round 1 – on-line. To participate in the competition a letter of request in a free form (full name, academic institution, e-mail address) should be sent to the address [email protected] before October 23, 2013. After the letter is received each participant will be assigned a personal login and a password. From October 28 to October 31 (inclusive) from 9am to 5pm all the participants will take online tests. Each test consists of 60 tasks that must be completed within 60 minutes. Overall rating will be performed in accordance with the total number of the participants and the scores will be posted on the website of the Department of Criminal Law and Criminology, SFedU. The winners of the first round will receive a certificate of attendance and with an invitation letter they will be asked to participate in the second round of the contest.
Round 2 – intramural. The second round will be held at the Department of Criminal Law and Criminology of Southern Federal University on December 7, 2013. The address is: 88, Gorky str., office 408, Rostov-on-Don, Russia. The participants of the second round will receive a creative task for writing. At the expiration of the allotted time the participants will present their papers. The winners will be determined by an expert jury and will be awarded with diplomas and prizes.
Round 1 – October 28 - 31, 2013
Round 2 – December 7, 2013
The Olympics organizing committee:
Chair: the Head of the Department of Criminal Law and Criminology prof. Gaikov Viktor
Members:

Associate professors Shimbareva Nina, Artyomenko Natalia, Razogrejeva Anna, Churlyajeva Irina, Tishchenko Ekaterina, Karasova Anna, Keidunova Elena, Mavrenkova Elena, Galkina Viktorija; assistant professor Panossian Asmik
Secretary: Olga Rak

write to: 88, Gorky str., Southern Federal University, Department of Criminal Law and Criminology, Rostov-on-Don, 344007, Russia

e-mail to: [email protected]

phone to: 8 (863) 2917403 - Olga Rak, 89282295139 - Tishchenko Ekaterina.

· User

· Db

· Host

· Пользовательские привилегии

База данных mysql и таблицы привилегий.

Итак, вы успешно вошли в базу данных mysql, которая используется для администрирования сервера. Что же здесь находится? А находятся здесь 5 таблиц, которые ничем не отличаются от других таблиц баз данных, за исключением того, что эти таблицы используются для предоставления доступа к базам данных и таблицам в них пользователям. Рассмотрим каждую из них.

Введите следующую команду, show tables, которая покажет таблицы в базе данных mysql.

Кратко рассмотрим функции каждой из таблиц:

Таблица User

Определяет, разрешено ли пользователю, пытающемуся подключиться к серверу делать это. Содержит имя пользователя, пароль а также привилегии. Если ввести команду show columns from user; то получим следующее:


Таблица 3- Структура таблицы User

Field Type Null Key Default Extra
Host char(60)   PRI    
User char(16)   PRI    
Password char(41)        
Select_priv enum('N','Y')     N  
Insert_priv enum('N','Y')     N  
Update_priv enum('N','Y')     N  
Delete_priv enum('N','Y')     N  
Create_priv enum('N','Y')     N  
Drop_priv enum('N','Y')     N  
Reload_priv enum('N','Y')     N  
Shutdown_priv enum('N','Y')     N  
Process_priv enum('N','Y')     N  
File_priv enum('N','Y')     N  
Grant_priv[1] enum('N','Y')     N  
References_priv enum('N','Y')     N  
Index_priv enum('N','Y')     N  
Alter_priv enum('N','Y')     N  
Show_db_priv enum('N','Y')     N  
Super_priv enum('N','Y')     N  
Create_tmp_table_priv enum('N','Y')     N  
Lock_tables_priv enum('N','Y')     N  
Execute_priv enum('N','Y')     N  
Repl_slave_priv enum('N','Y')     N  
Repl_client_priv enum('N','Y')     N  
Create_view_priv enum('N','Y')     N  
Show_view_priv enum('N','Y')     N  
Create_routine_priv enum('N','Y')     N  
Alter_routine_priv enum('N','Y')     N  
Create_user_priv enum('N','Y')     N  
Event_priv enum('N','Y')     N  
Trigger_priv enum('N','Y')     N  
ssl_type enum('','ANY','X509','SPECIFIED')        
ssl_cipher blob     NULL  
x509_issuer blob     NULL  
x509_subject blob     NULL  
max_questions int(11) unsigned        
max_updates int(11) unsigned        
max_connections int(11) unsigned        
max_user_connections int(11) unsigned        

Изначально эта таблица содержит пользователя root без пароля. По умолчанию root может входить с любого хоста, имеет все привилегии и доступ ко всем базам данных.Также в таблице содержится запись для пользователя '%'.

В БД MYSQL содержатся таблицы, называемых таблицами привилегий. Система привилегий будет подробно рассмотрена в следующих работах, а пока вы можете выполнить команды на добавления своего пользователя:

Для добавления нового пользователя your_name, можно выполнить следующие операторы языка (Insert):

 

Insert into user (host, user, password, ssl_cipher [2], x509_issuer, x509_subject) values ('localhost’, 'your_name', password('your_pass'), ‘’, ‘’, ‘’);

 

Выполнением команды

Select host, user, password from user;

Мы выводим перечисленные поля в виде таблицы

 

Host User Password
% root 456g879k34df9

 

Если необходимо выделить все столбцы таблицы, то необходимо набрать * в качестве аргумента команды select.

Чтобы изменения вступили в силу нужно перегрузить сервер, предварительно закончив текущий сеанс работы командой quit.

mysqladmin -u root reload (эта команда перегружает сервер)

После установки пароля для пользователя нужно перезагрузить сервер командой mysqladmin reload, чтобы изменения вступили в силу. После этого можно попробовать войти снова:

  Mysql/bin/ mysql -u your_name -p mysql Enter password:*******

Если же после этой операции вы не получите приглашение ко входу, то необходимо будет повторить вход в сервер под учетной записью ROOT и назначить необходимые права. Т.о., недостаточно добавить сведения о пользователе в системную БД, дополнительно необходимо назначить права пользователю, после чего можно начинать настраивать таблицы привилегий, вводить новых пользователей, создавать базы данных и таблицы, то есть делать все то, что называется администрированием. Назначить права можно указанием инструкцией INSERT для заполнения соответствующие привилегии (перечень привилегий см.
Таблица 3)

Mysql/bin/ mysql -u root И выполнить следующий запрос к БД:   Mysql> USE MYSQL; Mysql> GRANT ALL PRIVILEGES ON *.* TO 'your_name'@'localhost [3] ' IDENTIFIED BY 'your_pass' WITH GRANT OPTION; Mysql> FLUSH PRIVILEGES;  

Если пароль был случайно забыт, чтобы его задать по новой, придется стереть файлы mysql.frm mysql.MYI и mysql.MYD из папки с базами данных, затем запустить скрипт mysql_install_db и повторить все по новой. Можно воспользоваться ключом MYSQL и ввести --skip-grant-tables, при этом все пароли будут имеет пустое поле.

Команда имеет вид mysqld --skip-grant-tables.

Пояснения:

1.Команда insert вставляет данные в таблицу, не забывайте завершать команды ';'.

2.При вводе пароля используйте функцию password(), иначе пароль работать не будет!

3.Все пароли шифруются mysql, поэтому в поле Password вы видите абракадабры. Это делается в целях безопасности.

4.Не есть хорошей практикой назначать привилегии пользователям в таблице user, так как в этом случае они являются глобальными и распространяются на все базы данных. Предоставляйте привилегии каждому пользователю к конкретной базе данных в таблице db, которая будет рассмотрена далее.

5.При задании имени хоста для входа через сеть рекомендуется явно указывать полное имя хоста, а не '%'. В приведенном выше примере пользователю mary разрешается вход на сервер со всех машин домена tomsk.ru. Можно также указывать IP-адреса машин и маски подсетей для большей безопасности.

Таблица Db

Определяет к каким базам данных каким пользователям и с каких хостов разрешен доступ. В этой таблице можно предоставлять каждому пользователю доступ к базам данных и назначать привилегии. Eсли выполнить команду show columns from db; получим следующее:

Таблица 4 - Структура таблицы Db

Field Type Null Key Default Extra
Host char(60)   PRI    
Db char(32)   PRI    
User char(16)   PRI    
Select_priv char(1)     N  
Insert_priv char(1)     N  
Update_priv char(1)     N  
Delete_priv char(1)     N  
Create_priv char(1)     N  
Drop_priv char(1)     N  

· По умолчанию, все привилегии установлены в 'N'. Например, предоставим юзеру mary доступ к базе данных mysql и дадим ему привилегии select, insert и update (описание основных команд mysql будет дано в следующих лабораторных работах, сейчас ваша цель увидеть, как работают таблицы привилегий).

· Для справки:

  Insert into db (host, user, db, select_priv, insert_priv, update_priv) Values (''localhost', 'your_name', mysql, 'Y', 'Y', 'Y');

· Привилегии, устанавливаемые в таблице db, распространяются только на базу данных library. Если же установить эти привилегии в таблице user, то они будут распространяться и на другие базы данных, даже если доступ к ним и не установлен явно.

Таблица Host

Таблица host используется для расширения диапазона доступа в таблице db. К примеру, если доступ к какой-либо базе данных должен быть предоставлен более чем одному хосту, тогда следует оставить пустой колонку host в таблице db, и внести в таблицу host необходимые имена хостов. Выполним команду

show columns from host;

Таблица 5 - Структура таблиц Host

Field Type Null Key Default Extra
Host char(60)   PRI    
Db char(32)   PRI    
Select_priv char(1)     N  
Insert_priv char(1)     N  
Update_priv char(1)     N  
Delete_priv char(1)     N  
Create_priv char(1)     N  
Drop_priv char(1)     N  

Как видно из таблицы, здесь также можно задавать привилегии для доступа к базе данных.Они обычно редко используются без необходимости. Все привилегии доступа нужно задавать в таблице db для каждого пользователя, а в таблице host только перечислить имена хостов.Сервер читает все таблицы, проверяет имя пользователя, пароль, имя хоста, имя базы данных, привилегии.Если в таблице db привилегии select, insert установлены в 'Y', а в таблице host в 'N', то в итоге юзер все равно получит 'Y'.Чтобы не вносить путаницы, лучше назначать привилегии в таблице db.

Эти 3 таблицы являются основными.В новых версиях MySQL, начиная с 3.22 добавлены еще 2 таблицы- tables_priv и columns_priv, которые позволяют задать права доступа к определенной таблице в базе данных и даже к определенной колонке. Они работают подобно таблице db, только ссылаются на таблицы и колонки. Также, начиная с версии 3.22 можно использовать команду GRANT для предоставления доступа к базам данных, таблицам и колонкам таблиц, что избавляет от необходимости вручную модифицировать таблицы db, tables_priv и columns_priv. Команда GRANT будет подробно рассмотрена в следующих разделах.




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 578; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.