Es gibt verschiedene Möglichkeiten, den Zugriff auf eine Datenbank einzuschränken:
- Verwenden des LOGON-Triggers - jedoch nur vorübergehend (vor dem Upgrade aktivieren und dann deaktivieren). Weitere Informationen, einschließlich eines Skripts, finden Sie in meiner Antwort
hier .
- Sie können IIS auf den Webservern herunterfahren, damit mit der Anwendung keine Verbindungen hergestellt werden. Dies wird als "Ausfallzeit der Anwendung" bezeichnet.
Halten Sie die Datenbank im Einzelbenutzermodus mit (Beachten Sie, dass dies riskant ist, da eine andere Verbindung zur Datenbank besteht und Sie möglicherweise warten oder die Verbindung verweigern.)
alter database databasename
set single_user with rollback immediately
Sie sind besser dran, Option 2 als sicheres und geplantes Upgrade während Ihres Wartungsfensters zu verwenden.
BEARBEITEN:
Eingeschränkter Benutzer - nur Benutzer mit dbo-Rechten für die Datenbank zulässig (z. B. db_owner, dbcreator, sysadmin). Dies bedeutet, dass mehrere Benutzer weiterhin in der Datenbank angemeldet sein können, solange sie DBO sind.
Einzelbenutzer - nur eine Verbindung zulässig, dh wer zuerst kommt, mahlt zuerst.
Aufgrund der Tatsache, dass Einzelbenutzer zuerst kommen, zuerst bedient werden, ist dies im Falle eines Fehlers oder einer Beendigung Ihrer Verbindungen riskanter.
Wenn Sie sich mit dem Anmeldetrigger befassen, wie @AaronBertrand hervorhob, funktioniert dies nicht für vorhandene Sitzungen. Sie können dies jedoch überwinden, indem Sie zuerst alle Sitzungen beenden und dann den Trigger aktivieren, sodass alle neuen eingehenden Verbindungen über den auslösen.
Ich kann mir keine andere Möglichkeit vorstellen, die Verbindungen zur Datenbank einzuschränken.