В качестве администратора 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 и успешно сгенерирован. Однако всегда рекомендуется проверять и тестировать любой код перед его запуском в рабочей среде.
В целом, этот скрипт предоставляет удобный и эффективный способ обработки запросов на добавление новых логинов и предоставления им тех же разрешений, что и существующим логинам. Автоматизируя процесс, вы экономите время и снижаете риск ошибок.
Для полного скрипта и дополнительной информации вы можете посетить блог пост здесь.
Не забывайте быть осторожными при запуске любого кода из Интернета и всегда тестировать его в контролируемой среде.
Счастливого программирования!