Mit der Anweisung //ADD-SELECTION-CONDITIONS wird eine Auswahlbedingung für Protokolldatensätze festgelegt und benannt. In der Auswahlbedingung ist Wildcard-Syntax möglich.
NAME = <name 1..8>
Name der Auswahlbedingung, die im Operanden CONDITION festgelegt ist.
CONDITION = *NONE / <text 1..1800>
Die Auswahlbedingungen werden festgelegt.
CONDITION = *NONE
Die Auswahl ist uneingeschränkt.
CONDITION = <text 1..1800 with-low>
Die Auswahlbedingung besteht aus einem oder mehreren logischen Ausdrücken, die durch die logischen Operatoren AND, OR und NOT verknüpft werden. Zusätzlich kann durch Klammerung „(...)“ die Reihenfolge der Auswertung der Ausdrücke festgelegt werden. Die Operatoren werden auf logische Ausdrücke angewendet, die die Wahrheitswerte „TRUE“ oder „FALSE“ annehmen können (siehe Wahrheitstafeln). Es werden die Datensätze ausgewählt, die die Bedingung erfüllen.
Die Auswahlbedingung wird bei <text 1..1800 with-low> in folgender Weise angegeben:
[NOT] cond1 [OR/AND [NOT] cond2...]
Mit der Auswahlbedingung kann:
innerhalb einer Liste gesucht werden,
innerhalb eines Bereichs gesucht werden,
mit einem Wert verglichen werden,
geprüft werden, ob ein Feld vorhanden ist,
mit Wildcard-Syntax gesucht werden.
Dementsprechend kann cond Folgendes sein:
Suchen innerhalb einer Liste
field-name IN-LIST/NOT-IN-LIST (value,...)
field-name IN-LIST (value1,...valuen)
Ein Datensatz wird ausgewählt, wenn das angegebene Feld vorhanden ist und wenn dessen Inhalt einem der angegebenen Werte entspricht.field-name NOT-IN-LIST (value1,...valuen)
Ein Datensatz wird ausgewählt, wenn im angegebenen Feld keiner der angegebenen Werte steht oder wenn das angegebene Feld nicht vorhanden ist.Suchen innerhalb eines Bereichs
field-name IN-RANGE/NOT-IN-RANGE (value-range)
field-name IN-RANGE (value:value)
Ein Datensatz wird ausgewählt, wenn das angegebene Feld vorhanden ist und wenn dessen Inhalt einem Wert im angegebenen Bereich entspricht. Es werden nur das Feld timestp (Format: yyyy-mm-dd/hh:mm:ss) und Felder mit dem SDF-Datentyp integer akzeptiert.field-name NOT-IN-RANGE (value:value)
Ein Datensatz wird ausgewählt, wenn im angegebenen Feld kein Wert des angegebenen Bereichs steht oder wenn das Feld nicht vorhanden ist. Es werden nur das Feld timestp (Format: yyyy-mm-dd/hh:mm:ss) und Felder mit dem SDF-Datentyp integer akzeptiert.Vergleichen mit einem Wert
field-name EQUAL/NOT-EQUAL value
field-name EQUAL value
Ein Datensatz wird ausgewählt, wenn das angegebene Feld vorhanden ist und den angegebenen Wert enthält.field-name NOT-EQUAL value
Ein Datensatz wird ausgewählt, wenn im angegebenen Feld ein anderer als der angegebene Wert steht oder wenn das angegebene Feld nicht vorhanden ist.Suchen eines bestimmten Feldnamens
field-name PRESENT
Alle Datensätze, die das angegebene Feld enthalten, werden ausgewählt.
Mit Wildcard-Syntax suchen
field-name MATCH/NOT-MATCH pattern
field-name MATCH pattern
Alle Datensätze, die dem angegebenen Suchmuster entsprechen, werden ausgewählt. Es werden nur Felder mit dem SDF-Datentyp c-string mit Ausnahme von plamrc akzeptiert.field-name NOT-MATCH pattern
Alle Datensätze, die dem angegebenen Suchmuster nicht entsprechen, werden ausgewählt. Es werden nur Felder mit dem SDF-Datentyp c-string mit Ausnahme von plamrc akzeptiert.
Definitionen
field-name
bezeichnet die Typen der protokollierbaren Information z.B. access, acckey,... (siehe Tabelle auf "Tabelle der protokollierbaren Informationen (Feldnamen)"). Andere Angaben werden als Fehler abgewiesen. Die Angabe des Namens eines *LNG-Feldes (siehe "Aufbau der SATLOG-Dateien") für field-name ist nicht erlaubt.
value
entspricht den in SDF definierten Datentypen: <x-string>, <c-string>, <integer>, <keyword>. value muss dem Datentyp entsprechen, der bei dem zugehörigen fieldname angegeben ist (siehe Tabelle auf "Tabelle der protokollierbaren Informationen (Feldnamen)"). Z.B. gehört zum Feldnamen dmsrc ein value vom Typ x-string.
Besonderheit bei field-name = filpos / curlim2 / maxlim2:
Für die Feldnamen filpos, curlim2 und maxlim2 existiert ein spezieller Datentyp <integer-with-unit>.
Dieser unterscheidet sich vom Datentyp <integer> dadurch, dass zusätzlich in Klammern eine Maßeinheit angegeben werden kann, also <integer>(<unit>). <unit> kann BYTES, KB (=Kilobytes), MB (=Megabytes) oder GB (=Gigabytes) sein. Fehlt die Angabe, wird BYTES angenommen.
Falls als Maßeinheit explizit oder implizit BYTES festgelegt ist, muss der Zahlenwert ein Vielfaches von 512 sein. Anderenfalls wird die Anweisung mit einer Fehlermeldung abgewiesen.
Die Angabe eines Zahlenwertes mit Maßeinheit wird intern immer in Vielfache von 512 Bytes umgerechnet. Nur dieser Wert ist für das Ergebnis einer Auswahlbedingung von Belang, nicht jedoch die Form der Eingabe.
Z.B. werden die Angaben3145728(BYTES)
,3072(KB)
und3(MB)
als gleichwertig betrachtet, da jede denselben Wert von 3145728 Bytes darstellt.Unabhängig von der UNIT-Angabe darf der Maximalwert von 240-512 (=1 099 511 627 264) Bytes nicht überschritten werden. Damit ergeben sich für die jeweiligen UNIT-Angaben folgende Maximalwerte:
UNIT
Maximaler Zahlenwert
entspricht in Bytes
BYTES
231-1 = 2 147 483 647
231-1 = 2 147 483 647
KB
230-1 = 1 073 741 823
240-210 = 1 099 511 626 752
MB
220-1 = 1 048 575
240-220 = 1 099 510 579 200
GB
210-1 = 1 023
240-230 = 1 098 437 885 952
value-range
bezeichnet einen Bereich von Werten, der sich wie folgt zusammensetzt: <value:value>.
pattern
bezeichnet einen c-string, bei dem analog zum SDF-Datentyp <c-string with-wild (n)> Teile der Zeichenfolge durch Platzhalter (wildcards) ersetzt werden können. pattern darf höchstens 281 Zeichen lang sein.
Die zur Verfügung stehenden Wildcard-Zeichen sind:
* | Ersetzt eine beliebige, auch leere Zeichenfolge. |
/ | Ersetzt genau ein beliebiges Zeichen. |
\ | Entwertet Platzhalter (* / < > : ,) in einer Zeichenfolge |
<sx:sy> | Ersetzt eine Zeichenfolge für die gilt:
|
| |
<s1,...> | Ersetzt alle Zeichenfolgen, auf die eine der mit s angegebenen Zeichenkombinationen zutrifft. s kann auch eine leere Zeichenfolge sein. |
Der Platzhalter „-“ zur Verneinung einer Aussage wird hier nicht verwendet. Dafür ist NOT-MATCH vorgesehen.
Hinweise
Wird bei der syntaktischen Analyse der Anweisung ein Fehler entdeckt, wird die Auswahlbedingung auf SYSOUT ausgegeben. An der fehlerhaften Stelle befindet sich dann ein Fragezeichen.
Wenn der Benutzer im geführten Dialog arbeitet, führt die oben genannte Ausgabe auf SYSOUT zum Verlust des SDF-Bildschirms. Mit der Anweisung //RESTORE-SDF-INPUT wird der SDF-Bildschirm wieder hergestellt.
Posix-filenames und Kerberos-Namen werden von SAT ohne Einschränkung protokolliert. Bei der Definition von Auswahlbedingunen wird die Groß- und Kleinschreibung bei folgenden SAT-Feldern unterstützt: AUDITID, HOMEDIR, LINKNAM, NEWPATH, PATHNAM, PRINCCL, PRINCSV, SHELL, SYMBDEV. Bei den Feldern, für die nicht zwischen Groß- und Kleinbuchstaben unterschieden wird, erfolgt intern eine Umwandlung nach Großbuchstaben. Die Felder können mit Ausnahme von SYMBDEV allerdings nur in einer Länge von max. 255 Bytes angegeben werden.
Events mit längeren Feldinhalten können durch die Angabe von Wildcards selektiert werden. Für die Angabe eines Einzelnamens (ohne Wildcards) werden Sonderzeichen zugelassen, wie sie für posix-filenames bzw. für Kerberos-Namen erlaubt sind.
Beispiele
//add-selection-conditions name = filesel, - // condition = filname in-list ('filex','filey') - — (1) // and access equal input - ———————————————— (2) // and res equal f - ———————————————————— (3) // and dmsrc equal x'0d35' - —————————————— (4)
Unter der Bedingung mit dem Namen filesel werden Ereignisse ausgewählt, wenn
(1) | die Dateien ’FILEX’ oder ’FILEY’ betroffen sind und |
(2) | der Open-Modus INPUT ist und |
(3) | das Ergebnis der Operation ’failure’ ist und |
(4) | die Datei nicht mehrbenutzbar ist (DMS Return Code 0D35). |
//add-selection-conditions name = groupsel, - // condition = (groupid equal c'g1' - —————————————— (1) // and not auditid present) - ————————————— (2) // or (groupid in-list (c'g2',c'g3') - —— (3) // and user-id not-in-list ('u1','u2')) (4)
Unter der Bedingung mit dem Namen groupsel werden Ereignisse ausgewählt, wenn sie
(1) | von Benutzern der Gruppenkennung G1 erzeugt wurden und diese sich nicht |
(2) | mit einer Chipkarte oder mit einer persönlichen Benutzerkennung gegenüber dem System identifiziert haben oder |
(3) | von Benutzern der Gruppenkennungen G2 ODER G3 erzeugt wurden und |
(4) | diese nicht die Benutzerkennung U1 bzw. U2 haben. |
//add-selection-conditions name = satsel, - // condition = evt equal 'FRD' - // and filname match '$sysaudit.sys.satlog.*' - // and timestp in-range (2017-05-01/00:00:00 : 2017-05-31/23:59:59) - // and userid not-in-list ('tsos','sysaudit')
Unter der Bedingung mit dem Namen satsel werden Lesezugriffe nicht-privilegierter Benutzerkennungen auf SATLOG-Dateien im Mai 2017 ausgewählt.
Wahrheitstafeln
Für AND, OR und NOT gelten folgende Wahrheitstafeln:
cond1 AND cond2 | TRUE | FALSE |
TRUE | TRUE | FALSE |
FALSE | FALSE | FALSE |
cond1 OR cond2 | TRUE | FALSE |
TRUE | TRUE | TRUE |
FALSE | TRUE | FALSE |
cond1 | TRUE | FALSE |
NOT cond1 | FALSE | TRUE |
Gleiche Operatoren werden von links nach rechts abgearbeitet.