Удаление Security->Logins в SQL 2005, которые не сопоставлены с пользователем базы данных?
В моей демо-среде я манипулирую множеством баз данных SQL. Каждая база данных имеет много пользователей, которые связаны с отдельным Security->Logins на сервере.
Со временем я продолжаю получать множество (например, сотен) сирот Security->Logins, которые не связаны ни с какими пользователями ни в одной из баз данных.
Есть ли какие-либо операторы SQL, которые я могу выполнить, чтобы отбросить неиспользуемые имена входа - то есть те имена входа, которые не сопоставлены пользователям базы данных?
2 ответа
Я бы предложил создать оператор select, который связывает таблицу sysusers отдельной базы данных с master..sysxlogins.
Некоторые системные тесты, которые вы хотите изучить, это sp_MShasdbaccess и sp_validatelogins.
Используйте sp_droplogin (или Management Studio)
Есть ли подтекст к вашему вопросу, например, как отбрасывать только те логины, которые не связаны с пользователем базы данных? Если так, то я думаю (хотя я бы попробовал это сделать, чтобы быть уверенным), что sp_droplogin удалит только те логины, которые не сопоставлены пользователю БД, и потерпит неудачу, если они сопоставлены.
JR