Создать роль в базе данных и назначить ей необходимые привилегии.Не используйте фиксированные роли базы данных.Вместо этого предоставьте разрешения непосредственно объектам, схемам или всей базе данных, если это необходимо.Например:
create role trusted_app_role
grant select, insert, update, delete, execute
on schema::dbo to trusted_app_role
Это предоставит роли полные разрешения DML для всех объектов в схеме dbo
по умолчанию.Поэтому, если у вас есть какие-либо таблицы или процедуры, к которым у приложения нет доступа, просто создайте их в другой схеме, скажем, admin
.Таким образом, вам никогда не придется возиться с разрешениями при добавлении объектов.Фиксированные роли базы данных предшествуют разрешениям на основе схемы и больше не нужны.
Для удостоверения вашего приложения добавьте в эту роль удостоверения Active Directory или Azure Active Directory (Azure SQL) или, если выневозможно, добавьте пользователей SQL к роли.
Если вы используете Azure SQL, обычно вы должны использовать пользователя базы данных без имени входа.На SQL Server вы можете добавлять «пользователей автономной базы данных» только в том случае, если вы включили Частичная защита базы данных .Что вы можете сделать, но несовместимо с отслеживанием изменений и сбором данных изменений, так что это компромисс.
Так что обычно для SQL Server вы по-прежнему создаете имя входа и сопоставляете пользователя с именем входа.EG:
create login web_service_user with password = '5X+jeuAB6kmhw85R/AxAg'
create user web_service_user for login web_service_user
А затем добавить этого пользователя в свою роль
alter role trusted_app_role add member web_service_user