Я ищу ссылки или ответ здесь, о том, как правильно настроить полномочия базы данных защитить приложение Django? Чтобы быть ясным, я ищу именно материал, имеющий дело с предоставлениями на базе данных, не полномочиями в самой платформе Django.
Обычно я:
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, я бы предположил, что оптимальный набор разрешений мог бы быть выбором, вставкой, обновлением, удалением, созданием, индексированием и файлом. Если вы хотите по-настоящему разобраться в деталях, вы можете выборочно предоставлять эти разрешения по мере необходимости на уровне таблицы (а не на уровне базы данных).
Лично я считаю, что разрешить все ...
легче вводить.
Log4j файлы журнала не подходят для синтаксического анализа, они слишком сложны и неструктурированы. Я считаю, что есть сторонние инструменты, которые могут это сделать (например, пилорама).
Если необходимо выполнить автоматизированный пользовательский анализ журналов, следует рассмотреть возможность регистрации в базе данных и анализа этого. JDBC поставляется с JdstartAppender
, который добавляет все сообщения в базу данных по вашему выбору, но имеет последствия для производительности, и он немного бледный. Есть и другие, подобные, альтернативы на интервейбе, хотя (как этот ).
Он должен называться Test Driven Design , потому что это то, что он есть.
Нет никаких практических причин для разделения проектирования на конкретный этап проекта. Проектирование происходит постоянно. Начиная с первоначального обсуждения с заинтересованными сторонами, путем создания истории пользователя, оценки, а затем, конечно, во время ваших сессий TDD.
Если вы хотите формализовать дизайн с помощью UML или чего угодно, это хорошо, просто имейте в виду, что код является дизайном, а все остальное - всего лишь аппроксимацией. И помните, что YAGNI относится ко всему, включая проектную документацию.
-121--3832358-Какова цель настройки разрешений на уровне БД? Если ваш сервер скомпрометирован, злоумышленник сможет сделать что угодно с вашей базой данных (потому что у него есть вход/пропуск), и разрешения не помогут. Если сервер защищен, разрешения бесполезны.
Разрешения могут иметь смысл, если сервер БД доступен из внешнего мира, но это не является хорошей идеей.