П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 180590 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 79041 раз(а).

Учебник HTML.
Просмотров 75806 раз(а).

Руководство по PHP5.
Просмотров 46850 раз(а).

Хостинг через призму DNS.
Просмотров 54312 раз(а).

Подборка текстов стандартных документов.
Просмотров 46682 раз(а).

Учебник PHP - Самоучитель
Просмотров 52891 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 53498 раз(а).

Внешние атаки...
Просмотров 43249 раз(а).

Учебник PHP.
Просмотров 38777 раз(а).

SSI в примерах.
Просмотров 28689 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Администрирование пакета MySQL

Предоставление доступа к базам данных

СУБД MySQL использует специальную базу данных для предоставления прав доступа к своим базам данных. Эти права могут базироваться на именах серверов и/или пользователей и предоставляться для одной или нескольких баз данных

Пользовательские аккаунты могут быть снабжены паролями. При обращении к базе данных, пароль шифруется. Поэтому он не может быть перехвачен и использован посторонним (это мнение автора СУБД...).

СУБД MySQL имеет три таблицы, а именно:

База данных: mysql Таблица: db
База данных: mysql Таблица: db
ПолеТипNullКлючУмолчаниеExtra
Хостchar(60) PRI  
Dbchar(32) PRI  
Пользовательchar(16) PRI  
Select_privchar(1)  N 
Insert_privchar(1)  N 
Update_privchar(1)  N 
Delete_privchar(1)  N 
Create_privchar(1)  N 
Drop_privchar(1)  N 

База данных: mysql Таблица: host
ПолеТипNullКлючУмолчаниеExtra
Хостchar(60) PRI  
Dbchar(32) PRI  
Select_privchar(1)  N 
Insert_privchar(1)  N 
Update_privchar(1)  N 
Delete_privchar(1)  N 
Create_privchar(1)  N 
Drop_privchar(1)  N 

База данных: mysql Таблица: user
База данных: mysql Таблица: user
ПолеТипNullKeyУмолчаниеExtra
Хостchar(60) PRI  
Пользовательchar(16) PRI  
Парольchar(8)    
Select_privchar(1)  N 
Insert_privchar(1)  N 
Update_privchar(1)  N 
Delete_privchar(1)  N 
Create_privchar(1)  N 
Drop_privchar(1)  N 
Reload_privchar(1)  N 
Shutdown_privchar(1)  N 
Process_privchar(1)  N 
File_privchar(1)  N 

Пример добавления новых пользователей:

$ mysql mysql
mysql> INSERT INTO user VALUES ('%','monty',password('something'),
    -> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO user (host,user,password) values('localhost','dummy','');
mysql> INSERT INTO user VALUES 
('%','admin','','N','N','N','N','N','N','Y','N','Y','N');
mysql> quit
$ mysqladmin reload

Добавлено три новых пользователя (юзверя):

monty: Суперпользователь (администратор), должен использовать пароль, для работы с mysql.

dummy: Должен быть допущен к индивидуальной базе данных по таблице 'db '.

admin: Не нуждается в пароле, но разрешено выполнение только команд 'mysqladmin reload' and 'mysqladmin processlist'. Может быть допущен к индивидуальной базе данных через таблицу 'db'.

ВНИМАНИЕ! Вы ДОЛЖНЫ использовать функцию password() при создании пользователя, имеющего пароль. СУБД MySQL ожидает получить зашифрованный пароль.

Атрибуты, установленные в таблице пользователей перекрывают атрибуты, установленные в таблице DB. Если сервер поддерживает много баз данных, лучше создавать пользователей без прав доступа в таблице пользователей и назначать им права доступа к базе данных по таблице db.

Если Вы используете MIT threads package, обратите внимание, что имя localhost не будет работать, так как MIT threads package не поддерживает socket-подключения. Это означает, что Вы должны всегда определять ваш hostname (имя сервера) при подключении, даже если Вы работаете с одним и тем же сервером.

Следует помнить следующие правила при настройке прав доступа:

  • Имя сервера и поля в таблице db могут содержать регулярные выражения языка SQL: символы % и _. В других полях использовать их нельзя.
  • Имя сервера может быть доменным именем, именем localhost, IP адресом или SQL выражением. Пустое поле "имя сервера" означает любой сервер.
  • Поле db является именем базы данных или SQL выражением.
  • Пустое имя пользователя эквивалентно любому пользователю.
  • Пустой пароль эквивалентен любому паролю. Вы можете создать суперпользователя (super-user) установив все права для него в 'Y' в таблице пользователей при создании этого аккаунта. Этот пользователь сможет делать что угодно, не считаясь со значениями, установленными в таблице DB!
  • Таблица серверов проверяется только когда в таблице db поле "имя сервера" пустое.
  • Все таблицы, по возможности, сортируются в порядке host-user-db.
Пользователь Сортируется по именам серверов и пользователей.
db Сортируется по именам серверов, пользователей и баз данных.
Сервер Сортируется по именам серверов и баз данных.

Начиная с версии 3.20.19 сервера введена еще одна хитрость, для попытки вычислить, как данный пользователь обратится к данной базе данных. Допустим существование пользователя с именем Джо, который зарегистрирован так:

Проверка таблицы баз данных будет выполнена для пользователя '' (пустое имя), а не для пользователя Джо, даже если пользователь, Джо имеет запись в таблице доступа к базам данных (db таблице).

Создание пользовательских аккаунтов - вероятно, наиболее путающий аспект СУБД MySQL, (особенно, если никогда не имел с ней дела), так что не удивляйтесь, если потребуется некоторое время, чтобы во всем разобраться и получить парочку несколько неприятных сюрпризов. Использование программы mysqlaccess делает управление доступом несколько более ясным.

Вообще лучше избегать использования регулярных выражений SQL в полях имени сервера. Это упрощает отладку.

Конкретно, установите все поля "имя сервера" в '%' и очистите таблицу серверов. Как только все начнет нормально функционировать, можно начинать эксперименты с добавлением имен серверов в таблицу серверов в случае такой необходимости.

Если получено сообщение об ошибке 'Access denied', то скорее всего вы нормально связались с демоном mysqld, но имеете неправильную информацию в вашей таблице пользователей.

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru