Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Warum setzt meine tempdb die Berechtigungen zurück, wenn der Server neu gestartet wird?

Zunächst einmal sollten Sie der tempdb keine Berechtigungen direkt zuweisen. Aus den offensichtlichen Gründen, dass es bei jedem Neustart neu erstellt wird.

Was eigentlich eine Frage aufwirft:Warum benötigen Sie überhaupt direkte Berechtigungen für diese Datenbank?

Sie benötigen keine Berechtigungen, außer dass Sie sich nur mit dem SQL-Server verbinden können, um temporäre Tabellen zu erstellen. Wenn Sie jedoch echte Tabellen in der tempdb erstellen, empfehle ich Ihnen dringend, dies zu ändern, um eine dedizierte Datenbank für diesen Zweck zu verwenden.

AKTUALISIEREN
Basierend auf Martins Kommentar kann ich nur sagen wow. Ich hätte nie gedacht, dass dies eine Option gewesen wäre.

Okay, jetzt, wo ich mich von dem Schock erholt habe.

Erstellen Sie einen neuen Job in SQL Server, der nach einem Zeitplan ausgeführt wird. Der Zeitplan sollte auf „Automatisch starten, wenn der SQL Server-Agent startet“ eingestellt sein. Der Job sollte Ihre erforderlichen tempdb-Berechtigungen neu erstellen.

Kurz gesagt, wenn der Server neu gestartet wird, wird der SQL Server Agent neu gestartet (vorausgesetzt, der Dienst ist so eingestellt). Wenn es neu gestartet wird, wird dieser Job gestartet, der dann Ihre Berechtigungen repariert. Ich würde erwarten, dass die Site nur ein paar Sekunden länger heruntergefahren bleibt, als es für einen vollständigen Neustart des SQL-Servers dauert.