AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MSSQL: AFTER Insert Trigger verstehen ...
Thema durchsuchen
Ansicht
Themen-Optionen

MSSQL: AFTER Insert Trigger verstehen ...

Ein Thema von jensw_2000 · begonnen am 9. Jan 2005 · letzter Beitrag vom 14. Jan 2005
 
jensw_2000
(Gast)

n/a Beiträge
 
#1

MSSQL: AFTER Insert Trigger verstehen ...

  Alt 9. Jan 2005, 13:36
Ich habe bisher noch nie Trigger verwendet und brauche mal einen kleinen Denkanstoß.

Ich habe mir eine einfache DB-basierte Rechteverwaltung gebastelt die nach folgenden Schema funktioniert:

SQL-Code:
Tabelle Usergruppen

ID UniqueIdentifier
GrpName VarChar(20)

ID GrpName
-----------------------------------------------------------
{2FCE0D68-424F-4618-A7A5-144A60586273} User Lesen/Schreiben
{23450D65-4454-6FD8-A544-435343553BC1} Admins
-----------------------------------------------------------

Tabelle ZugriffsObjekte

ID UniqueIdentifier
Beschreibung VarChar(40)
VCL_Name VarChar(30)

ID Beschreibung VCL_Name
-----------------------------------------------------------------------------------------
{93989981-EE88-4BFC-828D-E04840AD642A} Benutzerverwaltung act_Benutzerverwaltung
{74971F6D-33B9-471B-8939-26A90637B83C} Datei öffnen act_FileOpen
{75DDA832-8237-4BF1-9418-5436BD33B644} Datei speichern act_FileSave
-----------------------------------------------------------------------------------------


Tabelle ACL_Usergruppen

ID_UserGruppen UniqueIdentifier
ID_ZugriffsObjekte UniqueIdentifier


ID_UserGruppen ID_ZugriffsObjekte
--------------------------------------------------------------------------------
{2FCE0D68-424F-4618-A7A5-144A60586273} {74971F6D-33B9-471B-8939-26A90637B83C} -- alle Öffnen --
{2FCE0D68-424F-4618-A7A5-144A60586273} {75DDA832-8237-4BF1-9418-5436BD33B644} -- alle Speichern --
{2FCE0D68-424F-4618-A7A5-144A60586273} {93989981-EE88-4BFC-828D-E04840AD642A} -- Admins Benutzerverw. --
--------------------------------------------------------------------------------
Das Prinzip dürfte klar sein.

In meinem Programm nehme ich die GruppenID des Benutzer und suche nach den zugeordneten ZugriffsObjekten.
Alle Actions in meiner ActionList die nicht gefunden werden, werden deaktiviert ...


Jetzt möchte ich folgendes erreichen:

Wenn eine neue Benutzergruppe erstellt wird, sollen dieser Gruppe automatisch Standardrechte zugewiesen werden (Datei öffnen darf jeder).

Dazu brauche ich einen Eintrag in der ACL_Usergruppen mit ID_UserGruppen"neu", ID_ZugriffsObjekte"DateiÖffnen".

Ich habe versucht mir einen Insert Trigger auf der Tabelle Usergruppen zu bauen, aber irgendwie fehlt mir da ein Stück Verständnis ...

Hier der klägliche Versuch:
SQL-Code:
CREATE TRIGGER Set_ACL_DEFAULTS ON [dbo].[UserGruppen]
FOR INSERT
AS

DECLARE @GRP_ID UniqueIdentifier
DECLARE @OBJ_ID UniqueIdentifier

SET @GRP_ID = dbo.Usergruppen.ID -- sollte doch die ID der gerade erstellten Gruppe werden
                                  -- SQL meckert aber, das der Präfix dbo.UserGruppen falsch ist
                                  -- nur ID ohne dbo.UserGruppen geht auch nicht (Feld 'ID' nicht gefunden)

SET @OBJ_ID = SELECT ID FROM dbo.ZugriffsObjekte WHERE VCL_Name = 'act_FileOpen'

INSERT INTO ACL_Usergruppen (ID_UserGruppen, ID_ZugriffsObjekte)
                     VALUES (@GRP_ID,@OBJ_ID)
Was ist da falsch und wie geht es richtig ... ?

Danke,
Jens
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz