Überlegungen zum Schreiben einer Klassifizierungsfunktion

Die Ressourcenkontrolle unterstützt benutzerdefinierte Funktionen, deren Rückgabewerte verwendet werden, um Sitzungen zu klassifizieren, die dann an die entsprechende Arbeitsauslastungsgruppe weitergeleitet werden.

Die benutzerdefinierte Klassifizierungsfunktion sollte getestet und optimiert werden, bevor sie zum Klassifizieren eingehender Anforderungen verwendet wird. Eine fehlerhaft geschriebene Funktion kann dazu führen, dass das System durch ein Timeout nicht mehr verwendet werden kann, wodurch wiederum Konfigurationsinformationen verfügbar gemacht werden können. Sie können für die Problembehandlung bei einer fehlerhaft geschriebenen Klassifizierungsfunktion eine dedizierte Administratorverbindung (Dedicated Administrator Connection, DAC) verwenden, da eine DAC der Klassifizierung nicht unterliegt und verwendet werden kann, während die Ressourcenkontrolle ausgeführt wird und eingehende Sitzungen klassifiziert. Weitere Informationen finden Sie unter Verwenden einer dedizierten Administratorverbindung.

HinweisHinweis

Wenn keine DAC für die Problembehandlung verfügbar ist, können Sie das System im Einzelbenutzermodus neu starten. Obwohl der Einzelbenutzermodus nicht der Klassifizierung unterliegt, können Sie die Klassifizierung der Ressourcenkontrolle während der Ausführung nicht diagnostizieren.

Sie können in den Klassifizierungsfunktionen vorhandene Systemfunktionen verwenden und mithilfe der von diesen Funktionen zurückgegebenen Werte Sitzungen klassifizieren.

Funktionen

Die folgenden Systemfunktionen können für die Klassifizierung verwendet werden: HOST_NAME(), APP_NAME(), SUSER_NAME(), SUSER_SNAME(), IS_SRVROLEMEMBER() und IS_MEMBER().

VorsichtshinweisVorsicht

Wenn Sie eine Funktion erstellen, die eine Eigenschaft zurückgibt, die für die Klassifizierung verwendet wird, müssen Sie in Erwägung ziehen, ob die Eigenschaft sicher ist. Wenn nicht, müssen Sie das mit der Verwendung des Attributs einhergehende Risiko bewerten. Die HOST_NAME()-Funktion und die APP_NAME()-Funktion geben Eigenschaften zurück, die nicht sicher sind. APP_NAME() kann z. B. jeden Wert zurückgeben, der in der Verbindungszeichenfolge einer Anwendung angegeben ist.

Die LOGINPROPERTY-Funktion wurde mit zwei Eigenschaften aktualisiert, die für die Klassifizierung verwendet werden können: DefaultDatabase und DefaultLanguage. Darüber hinaus können Sie mit der ORIGINAL_DB_NAME-Funktion den Namen der in der Benutzerverbindungszeichenfolge angegebenen Datenbank abrufen.

Die Ressourcenkontrolle implementiert zudem die CONNECTIONPROPERTY-Funktion, die zusätzliche Eigenschaften bereitstellt, die für die Klassifikation verwendet werden können. Diese Funktion gibt die gleichen Werte für die Eigenschaften der eindeutigen Verbindung, über die eine Anforderung eintraf, zurück wie die entsprechenden Spalten in der dynamischen Verwaltungssicht sys.dm_exec_connections.