Code-Änderungen

- SQL-Objekte ändern
- ARES
- Code-Änderungen – Beispiel 1
- Code-Änderungen – Beispiel 2
|
1. SQL-Objekte ändern
SQL: Fügen Sie WITH EXECUTE AS 'RLS_ALL' hinzu
Abfragen, die Zugriff auf alle Daten unabhängig von Benutzerberechtigungen benötigen, sollten in SQL-Objekte (gespeicherte Prozeduren, Funktionen, ..) verschoben und mit der Identität AS USER 'RLS_ALL' ausgeführt werden
a) Beispiel: Finde letzten acKey in tHE_Move:
Beim Einfügen von Datensätzen wird ein neuer ackey benötigt, um ein Dokument einzufügen.
Der Benutzer, der den Datensatz einfügt, hat keine Berechtigung für alle Dokumente eines bestimmten Dokumenttyps, da die Berechtigungen von Abteilung, Lager und / oder anderen Berechtigungen abhängen, daher ist es erforderlich, solches SQL ohne Berechtigungsbeschränkungen auszuführen.
Bitte überprüfen Sie die gespeicherte Prozedur pHE_MoveGetNewKey

Hinweis: WITH EXECUTE AS 'RLS_ALL' kann in Views, Triggern, Funktionen (außer Inline-Tabellenwertfunktionen) verwendet werden
b) Überprüfen Sie auch:
gPA_SetDoctype_security
pMN_DocumentNewKey
Finde RLS_ALL impersonierte Objekte:
select SO.*, OBJECT_DEFINITION(SO.object_id)
from sys.objects SO
where OBJECT_DEFINITION(SO.object_id) like '%RLS_ALL%'
2. ARES
a) PL / SQL-Skripte ändern
Um das gesamte PLS / SQL-Skript zu impersonieren, verwenden Sie EXECUTE AS USER = 'RLS_ALL'.
Überprüfen Beispiel auf Dev-Website.

 |
Der gleiche Code wird generiert, wenn die Dataset-Eigenschaft verwendet wird |
 |
Verwenden Sie vorbereitete Methoden, um diese Funktionen zu erreichen. |
Überprüfen ARES-Kompatibilitätsmodus
b) ARES und SQL: Entfernen Sie Joins zu t%Security-Tabellen in SQL- und PL/SQL-Code
Überprüfen Sie die Änderungen an vHE_Move

Joins zu t%UserSecurity-Tabellen müssen entfernt werden. RLS gilt für t%UserSecurity-Tabellen, wie in der Sicherheitsrichtlinie und der RLS-Funktion für jede Tabelle angegeben. Für detaillierte Informationen überprüfen Sie bitte RLS-Architektur.
3. Code-Änderungen – Beispiel 1:
Objekte, die ohne Berechtigungen Zugriff benötigen, müssen geändert werden, indem hinzugefügt wird:
mit execute as 'RLS_ALL'

4. Code-Änderungen – Beispiel 2:
create procedure [dbo].[pHE_MoveGetNewKey]
@cPoslDog varchar(04),
@dDatum DATETIME,
@cKljuc varchar(13) = '' OUTPUT
WITH EXECUTE AS 'RLS_ALL'