Funktionen CURRENT_DATABASE und CURRENT_SCHEMA: Deterministische Ausgaben bei Richtlinien, Ansichten und UDFs sicherstellen¶
Achtung
Diese Verhaltensänderung ist im Bundle 2024_06 enthalten.
Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.
Das Verhalten der Funktionen CURRENT_DATABASE und CURRENT_SCHEMA ist wie folgt:
- Vor der Änderung:
Die Rückgabewerte beim Aufruf der Funktionen CURRENT_DATABASE oder CURRENT_SCHEMA sind nicht deterministisch:
Wenn Sie die Funktion innerhalb einer Datenzugriffsrichtlinie, wie z. B. einer Maskierungs- oder Zeilenzugriffsrichtlinie, aufrufen, geben die Funktionen einen der beiden folgenden Werte zurück:
Die Datenbank oder das Schema, das die Richtlinie enthält.
Die Datenbank oder das Schema, das in der Sitzung verwendet wird.
Wenn Sie die Funktion in der Definition einer Ansicht oder einer UDF aufrufen und vor der Funktion nicht das Schlüsselwort SELECT steht, gibt die Funktion einen der beiden folgenden Werte zurück:
Die Datenbank oder das Schema, das in der Sitzung verwendet wird.
Die Datenbank oder das Schema, das die UDF oder die Ansicht enthält.
- Nach der Änderung:
Die Rückgabewerte beim Aufruf der Funktion CURRENT_DATABASE oder CURRENT_SCHEMA sind deterministisch:
Wenn Sie die Funktion innerhalb einer Datenzugriffsrichtlinie aufrufen, z. B. einer Maskierungs- oder Zeilenzugriffsrichtlinie, geben die Funktionen die Datenbank oder das Schema zurück, die/das die geschützte Tabelle oder Ansicht enthält.
Wenn Sie die Funktion in der Definition einer Ansicht oder einer UDF aufrufen, gibt die Funktion die Datenbank oder das Schema zurück, die/das die UDF oder die Ansicht enthält.
Um die Auswirkungen dieser Änderungen zu minimieren, gehen Sie wie folgt vor:
Wenn Ihre Ansichtsdefinition oder UDF eine dieser Funktionen verwendet und der Funktion nicht das Schlüsselwort SELECT vorangestellt ist, überprüfen Sie, ob die Definition der UDF für die Verwendung der Funktion korrekt ist.
Wenn Ihre Richtlinie eine dieser Funktionen aufruft, vergewissern Sie sich, dass der Text (Body) der Richtlinie für die Datenbank oder das Schema geschrieben wurde, das die geschützte Tabelle enthält, und nicht für die Datenbank oder das Schema, die/das für die Sitzung verwendet wird.
Bemerkung
Die Aktualisierungen in dieser Ankündigung wurden bereits im Bundle 2024_03 angekündigt. Der Änderungsprozess der Verhaltensweisen für diese Aktualisierungen wurde wieder aufgenommen, beginnend mit dem Bundle 2024_06.
Ref.: 1722