Я действительно надеюсь, что у кого-то есть понимание этого. Просто чтобы прояснить, о чем я говорю заранее; При ссылке на схему я имею в виду объект базы данных, используемый для разделения владельцев, а не схему создания базы данных.
Мы используем объекты Sql Server Schema для группировки таблиц в целые, где каждая группа принадлежит приложению. Каждое приложение также имеет свой собственный логин базы данных. Я только начал представлять роли базы данных, чтобы полностью автоматизировать развертывание для тестирования и промежуточной среды. Мы используем механизм сравнения объектов xSQL. Пакетный файл запускается каждую ночь, чтобы выполнить сравнение и создать файл изменения сценария. Затем его можно применить к целевой базе данных вместе с изменениями кода.
Проблема, с которой я сталкиваюсь, заключается в следующем. Рассмотрим следующую структуру базы данных:
База данных:
- Безопасность / Schemas:
- Ядро
- CoreRole (владелец)
- SchemaARole (выбрать, удалить, обновить)
- SchemaBRole (выбрать)
- SchemaA
- SchemaB
- Безопасность / Роли / Роли в базе данных:
- CoreRole
- SchemaARole
- SchemaBRole
Настройка отлично работает для трех приложений, которые их используют. Единственная проблема заключается в том, как создать / сгенерировать сценарий, который создает схему -> разрешения роли? Роль владельца применяется правильно. Так, например, схема Core получает роль владельца CoreRole (как и ожидалось). Однако SchemaARole и SchemaBRole не применяются.
Мне не удалось найти параметр, позволяющий включить это в объекте xSQL, и не существует опции для сценария этого из среды управления SQL Server. Ну, я не могу найти это, по крайней мере.
Я пытаюсь сделать невозможное? Как тогда SQL Server управляет этими отношениями?