Es kann aus zwei Gründen nicht vollständig deaktiviert werden:
On installiert, werden Anmeldungen bereitgestellt für NT AUTHORITY\SYSTEM
, NT SERVICE\SQLSERVERAGENT
(oder eine Gruppe mit dem SQL - Agent - Dienstkonto enthält) und NT SERVICE\MSSQLSERVER
(oder eine Gruppe , die das SQL - Datenbank - Engine - Dienstkonto). Dies sind sysadmin
Anmeldungen auf Ebene, die verfügbar sein müssen, damit SQL Server ordnungsgemäß funktioniert.
Während ein schneller Test ergab, dass das Löschen aller drei Anmeldungen nur den Neustart von SQL Agent verhinderte (das Datenbankmodul funktionierte einwandfrei), gibt es sicher noch andere Funktionen, die auf den beiden anderen Anmeldungen beruhen. Sie wurden standardmäßig erstellt aus einem Grund, damit ich nicht mit ihnen herumspielen würde. (Zu Ihrer Information, wenn Sie dies selbst testen: Die Drop & Create-Skriptoption für eine Anmeldung in SSMS führt keine Skript-Serverrollenmitgliedschaft durch.)
Im Einzelbenutzermodus erhalten lokale Administratoren automatisch Berechtigungen auf sysadmin
Ebenenebene, unabhängig davon, ob ein Login erstellt wurde, das diese Benutzer "enthält". Dies ist ein Kleiderbügel, wenn Sie Ihre Schlüssel im Auto eingeschlossen haben.
Wie in der anderen Antwort erwähnt, haben nur explizit erstellte Windows-Anmeldungen Zugriff auf die Verbindung (mein ursprünglicher Kommentar war falsch). Das Entfernen aller vom Benutzer erstellten Windows-Anmeldungen reicht aus, um den Zugriff zu verhindern.
Wenn Sie noch einen Schritt weiter gehen und verhindern müssen, dass Windows-Anmeldungen erstellt werden , finden Sie hier einen Ausgangspunkt (Policy-Based Management unterstützt zumindest 2008 nicht, dies zu verhindern):
CREATE TRIGGER trg_PreventWindowsLogins
ON ALL SERVER
AFTER CREATE_LOGIN
AS
BEGIN
SET NOCOUNT ON;
IF (EVENTDATA().exist('/EVENT_INSTANCE[1]/LoginType[1]/text()[1] eq "Windows (NT) Login"') = 1)
BEGIN
RAISERROR(N'Not allowed to create Windows logins!', 16, 1);
ROLLBACK;
END
END
Natürlich könnte jeder mit genügend Berechtigungen dies besiegen, aber das ist ein separates Problem ...