Published on

December 8, 2015

Понимание разрешений и назначений ролей в SQL Server

В качестве администратора SQL Server вы часто сталкиваетесь с запросами на добавление новых логинов и предоставление им тех же разрешений, что и существующим логинам. Хотя это может показаться простой задачей, она может стать сложной, когда вам нужно определить точные разрешения и назначения ролей, назначенные существующему логину.

Ручная проверка каждой роли на уровне сервера, членства в базе данных и разрешений на уровне объекта может быть трудоемкой и подверженной ошибкам. Однако с помощью SQL Server вы можете автоматизировать этот процесс и генерировать скрипты программно.

В недавней статье в блоге эксперт по SQL Server поделился своим подходом к созданию скриптов разрешений на сервер и назначений ролей. Они объединили фрагменты кода из разных источников и модифицировали их, чтобы они работали вместе без проблем. Получившийся скрипт позволяет создать новый логин и предоставить ему те же разрешения и членства в ролях, что и существующий логин.

Скрипт начинается с использования хранимой процедуры sp_help_revlogin, предоставленной Microsoft, для создания скрипта самого логина. Это гарантирует, что новый логин сохраняет тот же идентификатор безопасности (SID), что и существующий логин, что крайне важно для поддержания цепочек безопасности.

Затем скрипт использует код из блога Kendal Van Dyke для генерации операторов для членства в ролях на уровне сервера и разрешений. Он также включает код из ответа Phillip Kelley на StackOverflow для создания скрипта членства в ролях базы данных. Наконец, он включает код из сообщения Wayne Sheffield на форуме SQLServerCentral для создания скрипта разрешений на уровне объекта.

Скрипт принимает входной параметр для имени логина и выводит необходимые операторы CREATE и GRANT для логина, членства в ролях и разрешений на объекты. Запустив этот скрипт и заменив существующее имя логина на новое имя логина, вы легко можете воспроизвести разрешения и назначения ролей.

Важно отметить, что если вы работаете с SQL-логинами вместо Windows-логинов, вам нужно удалить параметр SID из оператора CREATE LOGIN в конечном скрипте.

Скрипт был протестирован на версиях SQL Server от 2005 до 2014 и успешно сгенерирован. Однако всегда рекомендуется проверять и тестировать любой код перед его запуском в рабочей среде.

В целом, этот скрипт предоставляет удобный и эффективный способ обработки запросов на добавление новых логинов и предоставления им тех же разрешений, что и существующим логинам. Автоматизируя процесс, вы экономите время и снижаете риск ошибок.

Для полного скрипта и дополнительной информации вы можете посетить блог пост здесь.

Не забывайте быть осторожными при запуске любого кода из Интернета и всегда тестировать его в контролируемой среде.

Счастливого программирования!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.