Regeln über T-SQL

<< Click to Display Table of Contents >>

Navigation:  Tabellen > Regelbasierte Berechtigungen für CIs und Menügruppen >

Regeln über T-SQL

Schreiben Sie ein T-SQL Script, welches die Berechtigungen für einen konkreten Webbenutzer erzeugt.

Der Webbenutzer steht in der Variable @pGrpID. Seine Berechtigungen speichern Sie  (über insert) in der Tabelle #new_rights (Spalten „objid“ und „attr“).

 

Hinweis: Für eine Tabelle oder für Menügruppen können mehrere Regeln über T-SQL definiert werden.

 

Beispiel 1: Mitarbeiter hat auf die ihm zugeordneten Rechner (HWM.VCOL_ANW_ID) alle Rechte

 

insert into #new_rights (objid, attr)

select HWM_ID, 1+4+8+16 from HWM

where HWM.VCOL_ANW_ID=@pGrpID

 

 

 

Beispiel 2: Mitarbeiter der Gruppe “admin” dürfen alle Rechner sehen und bearbeiten.

 

if exists

(

 select * from ANWROL

 inner join ROL on ROL_ID=ANWROL_ROL_ID

 where ANWROL_ANW_ID=@pGrpID and ROL_NAME='admin'

)

insert into #new_rights (objid, attr)

select HWM_ID, 1+4 from HWM

 

 

Hinweis: Aus Optimierungssicht ist diese Konstruktion nicht optimal. Für die Fälle, dass ein konkreter Mitarbeiter oder eine konkrete Rolle bestimmte Berechtigungen für alle konkreten Objekte einer Tabelle erhalten soll, sollte die Berechtigungsvergabe über „Direkte Zuordnung allen Objekte der Tabellen zu konkreten Berechtigten“ erfolgen (siehe auch Regeln über „Direkte Zuordnung aller Objekte der Tabellen zu konkreten Berechtigten“).