У нас есть SQL Server, который использует проверку подлинности SQL Server, с пользователями, которые могут развертывать, и другие, которые могут читать, для простоты я назову их «развертывание» и «Интернет».
У меня возникли трудности с настройкой разрешений с помощью проекта базы данных Visual Studio (2012), так как пользователь, выполняющий развертывание, не имеет достаточных разрешений для создания новых учетных записей на сервере.
Я могу добавлять сценарии, чтобы делать что-то вроде:
GRANT SELECT ON foo.bar TO [web]
Затем это дуется (с «SQL71501: Permission имеет неразрешенную ссылку на объект [web].»), Пока я не добавлю:
CREATE USER [web] FOR LOGIN [web];
Затем это дуется (с «SQL71501: User: [web] имеет неразрешенную ссылку на Login [web].»), Пока я не добавлю:
CREATE LOGIN [web] WITH PASSWORD = '******';
Затем это не удается опубликовать с помощью:
Удаление разрешения ...
Удаление разрешения ...
Создание [веб-пользователя] ...
(67,1): SQL72014: .Net Поставщик данных SqlClient: Сообщение 15247, уровень 16, состояние 1, строка 1 У пользователя нет разрешения на выполнение этого действия.
(67,0): SQL72045: Ошибка выполнения сценария. Выполняемый скрипт:
СОЗДАТЬ ЛОГИН [веб-пользователь]
С ПАРОЛЕМ = '**';Произошла ошибка при выполнении пакета.
Это не имеет смысла, поскольку пользователь уже существует, поэтому создавать
Как я могу разрешить публикацию через пользователя развертывания, не пытаясь (повторно) создавать логин каждый раз? Или можно сослаться на созданного извне пользователя без его публикации?