Одним из критических ресурсов для базы данных являются соединения. Как правило, базы данных настроены с максимальным количеством соединений, и каждый раз, когда процесс должен сделать запрос, ему нужно соединение для этого. Соединения с базой данных являются дорогостоящими объектами для создания - они требуют времени и памяти, и, самое главное, соединения устанавливаются для конкретного пользователя. Общепринятая «лучшая практика» для веб-приложений - для приложения, когда ему требуется соединение с базой данных, для проверки пула на наличие доступного соединения. Если в пуле есть свободное соединение, веб-приложение получит это соединение, использует его по мере необходимости, а затем возвращает его в пул для повторного использования. Если нет свободных подключений, приложение создаст новое, использует его, а затем помещает в пул для повторного использования.
Если вы имеете дело с приложением, которое использует несколько пользователей базы данных (для управления привилегиями), и вам нужно использовать пул соединений, ваше приложение должно будет создать много пулов (по одному для каждого пользователя), что обычно приводит к вашему приложение получает как минимум одно соединение для каждого пользователя базы данных, которое оно использует. Это неэффективно, подвержено ошибкам и излишне сложно.
Если вы действительно намерены ограничить доступ вашего приложения к данным, то вам, вероятно, следует выяснить, какую поддержку ваша база данных имеет для представлений. Если представления хорошо поддерживаются, то вы можете создать представление (или представления), настроенные в соответствии с потребностями любой части вашего приложения.
Я бы порекомендовал придерживаться одного пользователя базы данных, а затем использовать время, которое вы только что освободили, для дополнительной отладки вашего приложения. Вы получите лучшие результаты и усугубите меньше администраторов баз данных.