Существует два ключевых подхода, и оба оказывают существенное влияние на конструкцию системы, так что нелегко переходить от одного к другому без существенного переписывания. Вы должны понять, какова политика управления безопасностью вашей компании, прежде чем выбирать.
1) У каждого пользователя есть учетные данные, которые передаются через приложение, для службы, используемой приложением; в вашем случае база данных Oracle использует эти учетные данные пользователя для подключения к базе данных. Недостатком является то, что каждому пользователю нужны учетные данные для каждой безопасной службы. Это разумный безопасный подход, но он также требует значительных дополнительных усилий для предоставления и поддержки учетных данных пользователя. Администраторы вашей базы данных должны будут активно управлять учетными данными пользователей, которые могут противоречить политикам управления безопасностью вашей компании.
2) Учетные данные базы данных приложения хранятся в защищенной службе каталогов, например, Безопасный LDAP. Приложение обращается к службе каталогов с учетными данными пользователей. Служба каталогов возвращает учетные данные для доступа к службе.
В обоих случаях учетные данные базы данных должны быть ограничены для выполнения только соответствующих операций. Например, учетные данные должны отражать требования бизнес-процессов; они позволяют выбирать из определенных представлений / таблиц, вставлять в другие, но не создавать, обновлять или удалять таблицы. Во втором подходе используйте отдельные учетные данные для каждого основного бизнес-процесса, например, Обработка заказов, бухгалтерия, управление персоналом и др.
Однако помните, что безопасность подобна слоям лука, если кто-то убрал слои для доступа к приложению, чтобы они могли получить доступ к файлу конфигурации пула контекста БД. Вероятно, они могут запустить приложение для захвата учетных данных пользователей. Вот где приходит хорошая политика управления безопасностью.
Управление безопасностью - сложная проблема, которая требует приверженности высшего руководства, потому что если вам нужен этот уровень безопасности для вашей действующей платформы, это стоит затрат. Вы должны отделить обязанности разработки от развертывания, управления операциями и правами пользователя. Вам также может понадобиться аудиторы безопасности, которые имеют полный доступ к просмотру изменений, но не имеют возможности изменять конфигурацию. Это если далеко не просто и высокооплачиваемая специализация.