2010-10-04 3 views
0

Возможно ли запретить кому-либо, кроме тех, кому разрешено подделывать базу данных. Я предполагаю, что я спрашиваю, есть ли метод, отличный от входа в базу данных, чтобы препятствовать людям в подделке базы данных? Мне известны привилегии и доступ к определенным частям базы данных для определенных пользователей. Я ищу что-то еще, если кому-то удастся установить правильную комбинацию имени пользователя и пароля.Дополнительная профилактика несанкционированного доступа к базам данных

Я использую эту базу данных совместно с веб-сервером. Сервер базы данных и веб-сервер находятся на разных машинах и за аппаратным брандмауэром. Веб-сервер доступен только через брандмауэр, а сервер базы данных доступен только через веб-сервер.

Я предполагаю, что я спрошу, было бы возможно создать какой-то пользовательский элемент управления, который создает идентификатор сеанса или что-то подобное, так что только если этот идентификатор совпадает с тем, который был сохранен, когда пользователь будет подписан, будет ли выполняться запрос.

+1

У Symantec есть курс по этому вопросу. http://www.symantec.com/connect/articles/securing-mysql-step-step – bh88

+0

Это хорошо читать, спасибо –

+0

Действительно, это очень полезно, спасибо. –

ответ

2

Да, у вас есть контроль над настройкой того, какой пользователь имеет какую привилегию. Конечно, если они удержу пароль пользователя root, я думаю, вам может быть не повезло.

Ознакомьтесь с этой ссылкой для получения дополнительной информации о предоставлении льгот. http://beginner-sql-tutorial.com/sql-grant-revoke-privileges-roles.htm

Предоставления синтаксиса (от ссылки)

GRANT privilege_name 
ON object_name 
TO {user_name |PUBLIC |role_name} 
[WITH GRANT OPTION]; 

Revoke Синтаксис (от ссылки)

REVOKE privilege_name 
ON object_name 
FROM {user_name |PUBLIC |role_name} 

Подробнее: Брайан добавил в качестве комментария, что Symantec имеет хорошее руководство по обеспечению MySQL. Я просто хотел добавить, что он содержит много полезной информации, а также: http://www.symantec.com/connect/articles/securing-mysql-step-step

+0

Спасибо за это. В настоящее время я использую разные пользователи для каждого чтения и записи. Я искал нечто большее, чем это. –

0

Лучший способ предотвратить людей от несанкционированного доступа - разместить его на сервере, доступ к которому можно получить только с других компьютеров, которые нуждаются в для связи с базой данных (например, веб-сервером)

Если возможно, веб-серверы не должны иметь никакого административного доступа, кроме как через локальную сеть или VPN.

Если стоимость является проблемой (у вас может быть только один сервер или общий хост). Если вы можете запускать MySQL через SSL-соединение, по крайней мере, пароли не будут отправляться в clear.

+0

Даже если у вас есть одна коробка, вы все равно должны настроить несколько виртуальных серверов, чтобы немного разделить их. –

0

Обновите свою ОС для любых исправлений безопасности, которые могут привести к эскалации привилегий или удаленному исполнению кода, а также использовать брандмауэр для блокировки каждого порта рядом с тем, который вам нужен. Вы можете использовать туннели SSH, если ваша база данных нуждается в удаленном доступе. Доступ к файловой системе или доступ к оболочке может быть способом вмешательства в базу данных.

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

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

+0

Я уточню вопрос со всеми подробностями, которые я могу. –

0

Читайте об атаках SQL Injection и убедитесь, что ваш код их не позволит.

Если вы не используете динамический SQl и вместо этого используете хранимые procs, вы можете устанавливать разрешения на уровне proc, и пользователи могут делать что-то только через сохраненный proc, поскольку вы можете предотвратить прямую вставку, обновление и удаление в таблицы.Это помогает предотвратить мошенничество, потому что пользователи не могут ничего сделать, кроме того, что разработчики написали. Поэтому никто не может удалить всю таблицу и т. Д. Не предоставляйте разработчикам права на производство, кроме избранных прав. Шифруйте свои резервные копии. Помните, что сотрудники представляют собой большую или большую угрозу для ваших данных, чем внешние атаки.

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

Смежные вопросы