Как настроить полномочия базы данных для приложения Django?

Я ищу ссылки или ответ здесь, о том, как правильно настроить полномочия базы данных защитить приложение Django? Чтобы быть ясным, я ищу именно материал, имеющий дело с предоставлениями на базе данных, не полномочиями в самой платформе Django.

18
задан emru 24 February 2010 в 00:06
поделиться

2 ответа

Обычно я:

grant all privileges on my_db.* to my_user@localhost identified by 'my_user_pass'
grant all privileges on test_my_db.* to my_user@localhost identified by 'my_user_pass'

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

Для работы django минимально требуется выбор, вставка, обновление и удаление. Если вы вообще используете test или syncdb, вам также понадобится возможность создавать таблицы и индексы (и, возможно, разрешение файла для загрузки фикстур sql).

Итак, для mysql db, я бы предположил, что оптимальный набор разрешений мог бы быть выбором, вставкой, обновлением, удалением, созданием, индексированием и файлом. Если вы хотите по-настоящему разобраться в деталях, вы можете выборочно предоставлять эти разрешения по мере необходимости на уровне таблицы (а не на уровне базы данных).

Лично я считаю, что разрешить все ... легче вводить.

8
ответ дан 30 November 2019 в 09:11
поделиться

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

Если необходимо выполнить автоматизированный пользовательский анализ журналов, следует рассмотреть возможность регистрации в базе данных и анализа этого. JDBC поставляется с JdstartAppender , который добавляет все сообщения в базу данных по вашему выбору, но имеет последствия для производительности, и он немного бледный. Есть и другие, подобные, альтернативы на интервейбе, хотя (как этот ).

-121--3894310-

Он должен называться Test Driven Design , потому что это то, что он есть.

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

Если вы хотите формализовать дизайн с помощью UML или чего угодно, это хорошо, просто имейте в виду, что код является дизайном, а все остальное - всего лишь аппроксимацией. И помните, что YAGNI относится ко всему, включая проектную документацию.

-121--3832358-

Какова цель настройки разрешений на уровне БД? Если ваш сервер скомпрометирован, злоумышленник сможет сделать что угодно с вашей базой данных (потому что у него есть вход/пропуск), и разрешения не помогут. Если сервер защищен, разрешения бесполезны.

Разрешения могут иметь смысл, если сервер БД доступен из внешнего мира, но это не является хорошей идеей.

-1
ответ дан 30 November 2019 в 09:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: