Есть плюсы и минусы каждого.
Использование общей учетной записи службы для аутентификации в базе данных имеет то преимущество, что она позволяет более эффективно объединять соединения с базой данных. То есть соединения могут быть повторно использованы между пользователями, минимизируя иногда дорогостоящую работу по открытию нового соединения, что вам нужно будет сделать, если каждый пользователь будет аутентифицироваться отдельно. Определенный конфликт заключается в том, что вам нужно быть особенно осторожным в проверке любого SQL, который выполняется пользователем, поскольку разрешения на учетную запись должны быть способны сделать то, что должен сделать самый мощный пользователь системы.
Использование учетной записи для каждого пользователя дает вам больше гибкости при назначении разрешений для разных пользователей без необходимости реализации вашей собственной схемы авторизации в вашем приложении. Кроме того, он упрощает аудит системы, потому что вы знаете, кто подключен, когда вы проверяете соединения с БД. Наконец, этот подход может снизить вашу уязвимость до SQL-инъекции, поскольку вы можете заблокировать учетную запись каждого пользователя (предпочтительно, используя защиту на основе ролей на платформе БД), чтобы иметь возможность делать то, что пользователю нужно разрешить.
Так, например, если они каким-то образом вводят DELETE FROM UsersTable, вы заблокировали бы это, и команда с впрыском завершится неудачей, даже если она прошла через вашу логику проверки.
Существует еще одно соображение, если у вас есть пользователи, которые знают, как использовать инструменты баз данных (особенно MS Access) и имеют прямой доступ к серверу базы данных. Если вы используете модель авторизации для каждого пользователя, у вас могут возникнуть проблемы с безопасными пользователями, обходящими ваше приложение и работающими напрямую с базой данных. Если ваши пользователи - кучка программистов, вы можете пойти с общей учетной записью.
Используйте общую учетную запись службы для доступа к БД, если ваше приложение очень сильно загружено большим числом одновременно пользователей, совершивших небольшие транзакции.
Используйте учетную запись/схему пользователя, когда у вас меньше пользователей, подключающихся к системе одновременно или вам нужна дополнительная безопасность и/или лучший контроль над полномочиями на объекты.
Пользователи не должны иметь доступ к самой базе данных, кроме как через ваше приложение. Сделать что-то иначе - это прибегнуть к катастрофе. –
У них не будет доступа. База данных находится на одном сервере приложения. – ceklock
@tecnotron физическое расположение серверов не является важным вопросом для ответа на ваш вопрос. –