Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Berechtigungen mit DB-Mitteln umsetzen? (https://www.delphipraxis.net/123611-berechtigungen-mit-db-mitteln-umsetzen.html)

khh 5. Nov 2008 11:44

Datenbank: mysql • Version: 5 • Zugriff über: ZEOS

Berechtigungen mit DB-Mitteln umsetzen?
 
Hallo zusammen,
folgende Aufgabenstellung:
es gibt eine Tabelle (Programm-)Module, darin stehen Programmnamen und ein Wert im Feld aktiv ( true oder false).
(Damit wird festgelegt ob das modul global aktiviert ist oder nicht.)
Es gibt eine Tabelle User, darin stehen Benutzer.
Als Verbindung gibt es die tabelle modulnutzer, in der steht für jeden Nutzer und jedes programm ein Ds mit nutzerid, modulid und true oder false im feld "erlaubt".
(damit sollen einzelnen Nutzern explizit Programme erlaubt oder verboten werden.)
(Diese Tabelle wird beim Start der Programme abgefragt)

Ist es mit Datenbankmitteln oder DB-Komponenten möglich bei der Anlage und Änderung von Nutzern diese Werte einzutragen abzufragen bzw. zu ändern.

Die Abfrage von bestehenden Werten mittels query stellt ja kein Problem dar,aber für die Neuanlage bzw.Änderung steh ich da grad aufm Schlauch.
Geht das überhaupt mit DB- bzw. DB-Komponenten, oder muss ich das von Hand erledigen.

Am Besten wärs näturlich per checkbox.

jemand ne Idee?


Danke Gruss KH

Relicted 5. Nov 2008 12:01

Re: Berechtigungen mit DB-Mitteln umsetzen?
 
huhu!

ich weiß nicht ob ichs richtig verstehe... aber scheinbar brauchst du einfach nur das schlüsselwörtchen "insert" anstelle des "selects" :-)

SQL-Code:
INSERT INTO modulnutzer (nutzerid,modulid,erlaubt) VALUES (5,6,false)
und um was zu ändern:

SQL-Code:
UPDATE modulnutzer SET erlaubt = true WHERE nutzerid = 5 AND modulid = 6

ich hoffe das is das was du gesucht hast.. :angel:

gruß
reli

Phoenix 5. Nov 2008 12:04

Re: Berechtigungen mit DB-Mitteln umsetzen?
 
In der Regel stellt jedes größere DBMS (virtuelle) Tabellen oder aber Stored Procedures / Server Functions zur Verfügung, mit denen Du die Benutzer der DB managen kannst.

Ich weiss nicht, ob man Trigger auf diese virtuellen Tabellen erstellen kann, die genau dann feuern, wenn ein neuer User in eine solche Tabelle eingefügt wird. Aber prinzipiell wäre es eine Idee, den Ansatz darüber mal weiter zu verfolgen.

Edit nachtrag: Ach, Du benutzt ja MySQL. Da sind das sogar echte Tabellen. Versuche einfach mal, auf die user-tabelle einen insert-Trigger zu legen, der deine Berechtigungen anpasst.

khh 5. Nov 2008 12:16

Re: Berechtigungen mit DB-Mitteln umsetzen?
 
Zitat:

Zitat von Relicted
huhu!

ich weiß nicht ob ichs richtig verstehe... aber scheinbar brauchst du einfach nur das schlüsselwörtchen "insert" anstelle des "selects" :-)

SQL-Code:
INSERT INTO modulnutzer (nutzerid,modulid,erlaubt) VALUES (5,6,false)
und um was zu ändern:

SQL-Code:
UPDATE modulnutzer SET erlaubt = true WHERE nutzerid = 5 AND modulid = 6

ich hoffe das is das was du gesucht hast.. :angel:

gruß
reli

naja das ist dann die methode von hand ;-)

Danke dir
Gruss KH

khh 5. Nov 2008 12:19

Re: Berechtigungen mit DB-Mitteln umsetzen?
 
Zitat:

Zitat von Phoenix
In der Regel stellt jedes größere DBMS (virtuelle) Tabellen oder aber Stored Procedures / Server Functions zur Verfügung, mit denen Du die Benutzer der DB managen kannst.

Ich weiss nicht, ob man Trigger auf diese virtuellen Tabellen erstellen kann, die genau dann feuern, wenn ein neuer User in eine solche Tabelle eingefügt wird. Aber prinzipiell wäre es eine Idee, den Ansatz darüber mal weiter zu verfolgen.

Edit nachtrag: Ach, Du benutzt ja MySQL. Da sind das sogar echte Tabellen. Versuche einfach mal, auf die user-tabelle einen insert-Trigger zu legen, der deine Berechtigungen anpasst.

ich danke dir,werd auch diese Idee mal durchdenken.


Gruss Kh


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz