![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: IBX
Roles in Firebird
Nach meinem Verständnis ist Folgendes doch richtig:
1. Logins einer Firebird DB stehen in einer Systemdatenbank 2. Roles sind DB spezifisch, werden also in der Kundendatenbank angelegt. So, jetzt hab ich also mit IBExpert einen Login erstellt (TOM). Dazu in der Datenbank eine Role (Angestellte), und den Login dort aufgenommen. Der Role hab ich erst mal Zugriff auf alle DB Objekte gegeben... Alles mittels IBExpert. versuche ich aber jetzt mit IBX eine Tabelle zu öffnen, sagts mir: no permission for read/select access to TABLE bla Wie kann ich denn nun die Role verwenden. Habe versucht, in TIBDatabase in der Params Eigenschaft die Zeile:
Delphi-Quellcode:
aufzunehmen, beim Connecten meldets dann aber
RoleName=Angestellte
DFB Constant (Rolename) is unknown Tell me what's wrong :gruebel: |
Re: Roles in Firebird
Hi,
es heisst sql_role_name. Wenn die einen Doppelklick auf das Database machst, erscheint ein Editor. Damit geht es einfacher. Cu, Frank |
Re: Roles in Firebird
Dank Dir, so klappts.
Aber nochmal für mein Verständnis: Ich kann ein Backup meiner DB auf einem anderen Rechner aufspielen, und damit sind die Roles und demnach auch die vergebenen Zugriffsrechte wirksam. Nur die DB Logins selbst muss ich nachträglich noc definieren und der gewünschten Role zuordnen... |
Re: Roles in Firebird
Ja, die Rollen sind Teil der Userdatenbank und sind deshalb unabhängig von der security.fdb.
|
Re: Roles in Firebird
Ok, vielen Dank. Ist ja dann nicht viel anders als beim MSSQL Server.
Jetzt müsst ich es noch fertig bringen aus dem eigenen Programm heraus Benutzer zu erstellen und diese dann in einer Role aufzunehmen... Hab das dann mal mit TIBSecurityService probiert, krieg dann aber wieder die Fehlermeldung This is an Interbase 7.5 function. Please upgrade to Interbase 7.5 to use this functionality Firebird scheint dann also doch nich so kompatibel zu sein... Gibts ne andere Möglichkeit, Benutzer anzulegen, z.B. durch direktes Schreiben in die Users-Tabelle der security.fdb Datenbank. Schreiben kann ich ja dort, nur wie wird das Passwort dort gespeichert... Da kommt dann sowieso noch die Frage hinzu, wie ich die security.fdb beim Endanwender lokalisieren kann. |
Re: Roles in Firebird
Du kannst die Benutzer natürlich direkt durch Schreiben in die Users Tabelle anlegen, davon ist aber abzuraten.
Der beste Weg ist unter der Verwendung des Hilfsprogrammes gsec (Teil der FireBird bzw. Interbase Distribution). |
Re: Roles in Firebird
Ich krieg das irgendwie nicht gebacken, das Tool direkt zu nutzen, um einen Benutzer anzulegen:
Code:
invalid parameter, no switch defined
gsec -user sysdba -password masterkey add Tester -pw blubb -fname Willy -lname Tester
error in switch specifications GSEC> quit im Interactive Modus gehts, aber das bringt mir nicht viel, da ich dann ja nicht aus dem Delphi Programm heraus einen Benutzer anlegen kann. ![]() Es gibts doch sicherlich irgendwelche Freeware Tools, um diese ganze User und Role Verwaltung in Firebird zu steuern. Ich bin ja wohl nicht der Einzige mit dem Verlangen, das direkt aus meinem Programm heraus zu erledigen. |
Re: Roles in Firebird
Liste der Anhänge anzeigen (Anzahl: 1)
Der wurde wohl vergessen, aber von UIB ( jetzt Teil der JVCL) gibt es eine versionsunabhängige Version ( alle Interbase unf Firebird-Versionen) im habe diede mal angehängt.
|
Re: Roles in Firebird
:wall: Was ein Aufwand, nur um einen User anzulegen. Also das kanns doch nicht sein. Ich komm mehr aus dem MSSQL Bereich, dort geht das alles durch simple T-SQL Befehle. Muss ich denn nun die ganze Jedi Lib installieren, um einen Firebird DB User anzulegen. Das leuchtet mir nicht ein.
Naja, vielleicht findet sich ja noch ne einfachere Möglichkeit. |
Re: Roles in Firebird
Diese datei wird zwar mit Jedi mitgeliefert, sollte aber auch ohne sie funktionieren. Du kannst ja auch nur die benötigten Teile auslagen ( Def Dtaenstruktur / Importzeile für Befehl aus dll).
|
Re: Roles in Firebird
Zitat:
Zitat:
|
Re: Roles in Firebird
Zitat:
Deshalb dacht ich Firebird ist schon die richtige Wahl. Aber die ganze Wartung und Nutzbarkeit treibt einen in den Wahnsinn. Aber für meine Anwendung würds absolut ausreichen. Muss jetzt halt nur noch einen einfachen Weg finden, User anzulegen. Ich kann meinem Endkunden nicht zumuten, sich mit gsec anzufreunden. |
Re: Roles in Firebird
Hi,
ich denke, wenn man auf Firebird aufsetzt, dann sollte man sich die Investition für eine gute Komponentenbibliothek überlegen. Mit IBO kann man z.B. mit AlterUser Benutzer anlegen. Mit FibPlus geht es sicher auch. Cu, Frank |
Re: Roles in Firebird
Hallo,
ich habe das selbe Problem und habe mich deshalb entschieden, die User-/Rechteverwaltung mit einem kleinen externen Programm namens ![]() mfg Herbert |
Re: Roles in Firebird
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich komm aus dem Kopfschütteln nicht mehr raus.... anbei ein kleines Testprogramm (delphi 7, UIB Version 2), das mit JVUIBSecurity einen User anlegt. Was da "schwer" sein soll oder "einen Aufwand" darstellt, kann ich nicht feststellen. Bzgl. der IB7.5 Fehlermeldung: Stimmen die EInstellungen in der *.inc-Datei der JVUIB? Wurde das Package nach der Einstellung der korrekten Datenbank nochmal kompiliert? Findet das Programm die korrekte Client-DLL? Grüße Lemmy |
Re: Roles in Firebird
Zitat:
Zitat:
|
Re: Roles in Firebird
OK, mit den IBX Komponenten gehts jetzt auch. Vielleicht lag es also wirklich an einer falschen gds32.dll Bibliothek, zumal ich mir mal testweis die beta vom Firebird 2.0 aufgesetzt hatte. Da ja gerade die Passwortkodierung dort auch geändert, kann ich mir vorstellen dass es da zu Probleme kommen kann.
Also mit den IBX Komponenten klappts jetzt eben auch. Bleibt jetzt nur noch abzuwarten, wie ich dann irgendwann auf Firebird 2.0 upgraden kann. |
Re: Roles in Firebird
Zitat:
![]() Die Jedi-UIB sind veraltet! Zitat:
Lad Dir mal die UIB von oben runter. Zur Installation musst Du die JediUIB allerdings aus Delphi rauswerfen! Grüße Lemmy P.S.: Bin zu langsam beim tippen ;-)) Aufgrund der FB2.0 Kompatibilität würde ich mich auf obige Krücke (Clientinst) nicht verlassen und alles was mit Security, backup und Restore zusammenhängt nicht mehr mit den IBX machen! Die UIB sind nicht so riesig, dass die das fertige Produkt unverhältnismäßig aufblasen.... Und noch was: ClientInst legt die Kopie der fbClient.dll im Windows/system32-Verzeichnis an! Wenn also Interbase und Firebird auf dem Rechner sind, bitte nach der Ausführung die korrekte gds32.dll im system-Verzeichnis wieder herstellen! |
Re: Roles in Firebird
Zitat:
Hab deine Demo jetzt mit den neuen UIB Kompos ans Laufen gebracht, und es klappt wunderbar. Ich kann hier leider nicht testen, ob das auch auf einem Firebird Server im Netz klappt, da ich zur Zeit nur meinen Laptop zur Verfügung habe. Noch eine Frage jetzt zu den Roles... Ich habe in meiner DB ja die Role "Angestellte". Wie kann ich jetzt meinen frisch angelegten User Test1 dort aufnehmen? |
Re: Roles in Firebird
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
ausreichen sollte:
JvUIBSecurity1.Role:='TestRole';
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin JvUIBSecurity1.User:='Test1'; JvUIBSecurity1.Pass:='test1'; JvUIBSecurity1.Role:='TestRole'; //** JvUIBSecurity1.AddUser; end; |
Re: Roles in Firebird
Die Roles sind an die Userdatenbank gebunden, und nicht an die security.fdb. Ich bezweifele also, dass da über JvUIBSecurity gehen wird.
Ausserdem kann ein User in mehreren Roles aufgenommen werden, genauso wie ein Role mehrere User beherbergen kann... Also eine klassische n:m Beziehung. Noch was Erstaunlichs zu den UIB, was ich fast nicht glauben kann: Ist JvUIBDataset wirklich nur zum Lesen von Daten gedacht, nicht jedoch zum Editieren? |
Re: Roles in Firebird
OK, das mit dem Zuordnen der Roles wäre hiermit nun auch geklärt... Eingeloggt als sysdba in der Userdatenbank und ein simples:
SQL-Code:
grant ANGESTELLTE to Test1
|
Re: Roles in Firebird
Hi,
eine Grundsatzfrage: Was ist bei dir die Userdatenbank? Natürlich kannst Du mit JVUIBDataSet auch Daten ändern, nur eben nicht so wie Du es von TIBDataSet gewöhnt bist (einfach mit einem DBEdit verbinden und fertig), sondern Du verwendest eben eine entsprechende SQL-Anweisung, die Du zusammenbauen musst. Lemmy |
Re: Roles in Firebird
Ich nehme die Datenbank, in der auch die Daten sind.
|
Re: Roles in Firebird
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 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