SO говорит, что это может быть субъективно. Я надеюсь, что нет - я просто не могу понять, как это работает на практике, и это похоже на достаточно конкретный технический вопрос с, надеюсь, окончательным ответом.
Контекст: стек LAPP.
Я читал, что использование одного пользователя базы данных в качестве логина для всех подключений к базе данных и самостоятельное обеспечение безопасности оттуда - плохая идея. Базы данных имеют достаточные модели безопасности и есть смысл их использовать.
Дескрипторы базы данных связаны с некоторыми затратами ресурсов, поэтому существуют Apache::DBI, DBIx::Connector и DBI::connect_cached() для повторного использования недавнего подключения к базе данных. Их использование должно ускорить работу веб-приложения, избегая затрат на подключение к базе данных.
Причина, по которой эти рекомендации кажутся взаимоисключающими, заключается в том, что, насколько я понимаю, № 1 подразумевает, что любое соединение с базой данных будет выполняться с отдельными учетными данными для каждого пользователя, что подразумевает (как Документы Apache::DBI), что повторное использование таких подключений, скорее всего, быстро приведет к истощению серверной части базы данных. соединений.
По умолчанию максимальное количество соединений для PostgreSQL равно 100.
Количество серверов по умолчанию, умноженное на подпроцессы, разрешенные для каждого, для Apache 2, работающего с prefork MPM, намного превышает это, поэтому кажется, что документы Apache:: DBI верны.
Поэтому возникает вопрос: что люди делают на практике?
Означает ли это, что люди, использующие стек LAPP, обычно подключаются, используя одного пользователя базы данных, и реализуют свою собственную модель безопасности/разрешений? Или это означает, что они не объединяют соединения? Или они выбирают между этими двумя стратегиями, основываясь на требованиях к скорости и безопасности, если они используют стек LAPP, а если им нужно и то, и другое, выбирают настольное приложение или какую-либо другую модель подключения?
Или, если это на самом деле не взаимоисключающие стратегии, что я здесь упускаю в своем понимании?