Удаление 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

Другие вопросы по тегам