Введение
Иногда нам нужно удалить логин SQL Server, потому что мы предоставили доступ человеку, который ушел, или потому что логин связан с приложением, которое было декомиссировано. Для этого мы можем использовать SQL Server Management Studio (SSMS) или выполнить оператор DROP LOGIN. Однако простое удаление логина может оставить зависимости в базах данных. В этой статье мы рассмотрим, как удалить логин SQL Server и все его зависимости с использованием операторов T-SQL.
Объяснение ситуации тестового случая
В этой статье мы сосредоточимся на конкретной ситуации тестового случая, где мы хотим удалить логин SQL Server с именем [ApplicationSQLUser1], который отображается на две базы данных SQL Server, [Db1] и [Db2]. Это отображение выполняется между логином и пользователем базы данных с именем [UserA] в [Db1] и [dbo] в [Db2]. Кроме того, база данных [Db2] принадлежит логину [ApplicationSQLUser1]. Также есть другой логин с именем [ApplicationSQLUser2], который отображается на [UserB] в базе данных [Db1].
Удаление пользователя базы данных
Для удаления пользователя базы данных нам нужно следовать определенной последовательности шагов. Сначала мы должны проверить наличие ссылок на пользователя базы данных внутри процедурных объектов. Если найдены какие-либо ссылки, должна быть вызвана ошибка. Затем мы должны сохранить разрешения, предоставленные пользователем базы данных, во временной таблице. Затем мы должны назначить нового владельца для любых схем и ролей, принадлежащих пользователю базы данных. Наконец, мы можем удалить пользователя базы данных.
Удаление логина SQL Server
Удаление логина SQL Server – это более сложный процесс. Мы должны выполнить следующие шаги:
- Проверить наличие отображений между логином SQL Server и одной или несколькими базами данных
- Для каждого найденного отображения базы данных удалить соответствующего пользователя базы данных
- Скопировать существующие разрешения сервера, предоставленные логину
- Отозвать эти разрешения и назначить их другому серверному принципалу
- Проверить роли сервера, принадлежащие логину, и назначить им другого владельца
- Проверить базы данных, принадлежащие логину, и назначить им другого владельца
- Удалить логин
Заключение
Удаление логина SQL Server и его зависимостей – это не простая задача. Это требует тщательного рассмотрения зависимостей и определенной последовательности шагов для успешного удаления. Следуя описанным в этой статье шагам, вы можете автоматизировать процесс или хотя бы иметь четкое представление о необходимых действиях.