Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Benutzer per SQL in Interbase anlegen (https://www.delphipraxis.net/51318-benutzer-per-sql-interbase-anlegen.html)

Sven Janssen 10. Aug 2005 11:33

Datenbank: Interbase • Version: 6 • Zugriff über: TIB etc

Benutzer per SQL in Interbase anlegen
 
Moin,

ich Rätsel gerade herum, wie ich über ein eigenes Programm Benutzer im Interbase Server anlegen und auch wieder entfernen kann.
Entweder über eine Komponente, oder direkt per SQL.
Grund ist, das der Kunde nachher die Benutzer selber anlegen soll und nicht über ein Konsolenprogramm gehen soll. Auch möchten wir nicht ständig die Benutzer beim Kunden eintragen wollen. Was bei vielen wegen fehlendem Remote Zugriff gar nicht möglich sein wird.

Also bin ganz offen für eure Vorschläge.

Sven

Lemmy 10. Aug 2005 11:55

Re: Benutzer per SQL in Interbase anlegen
 
Hi,


da die Benutzer in Interbase (fast) nur zum Spaß da sind, würde ich Dir vorschlagen eine eigene Benutzzerverwaltung zu machen: d.H. es gibt einen DB-User der auf die Datenbank zugreift und beim Anmelden wird der Username/das Passwort mit den entsprechenden Eintragungen einer eigenen Benutzertabelle überprüft.

Wenn Dir das nicht gefällt, dann musst Du entweder über die API direkt gehen oder fertige Komponenten wie TIBSecurity,... nehmen, damit kannst Du dann IB-User anlegen.

Lemmy

Sven Janssen 10. Aug 2005 12:03

Re: Benutzer per SQL in Interbase anlegen
 
Warum sollen die nur zum Spaß da sein?
Ich habe die Kontrolle wer online ist, ich kann durch Zugriffsmöglichkeiten Dten speeren, Identifikation usw usw.
Desweiteren kann ich dadurch auch prüfen wieviele User bereits angelegt sind ;-) 10 Lizenzen gekauft, 11 soll eingetragen werden und wird abgelehnt. Ok kann man auch alles so lösen, aber wenn es schon vorhanden ist.

Sven

Sven Janssen 10. Aug 2005 12:10

Re: Benutzer per SQL in Interbase anlegen
 
Mal ne Frage zu dem TIBSecurityService.
Muss dafür etwas installiert auf dem Rechner der dies ausführt?
Oder reicht der Zugriff auf einen Interbase Server?

Sven

Marcel Gascoyne 10. Aug 2005 12:53

Re: Benutzer per SQL in Interbase anlegen
 
Zitat:

Zitat von Sven Janssen
Mal ne Frage zu dem TIBSecurityService.
Muss dafür etwas installiert auf dem Rechner der dies ausführt?
Oder reicht der Zugriff auf einen Interbase Server?

Die Komponenten gehören zu IBX, da muss nix auf dem Server installiert werden.

Ich würde es aber auch mit nur einem fest verdrahteten Benutzer machen. Du kannst die Zugriffssteuerung dann über eigene Tabellen realisieren. In der Regel definiert man ja auch Zugriffsrechte innerhalb der Anwendung. Wenn dann jemand den Interbase User löscht sind die Zugriffsrechte ja immer noch in den Tabellen vorhanden. Über kaskadierende Constraints werden dann z.b. auch alle Zugriffsrechte für der Benutzer mitgelöscht wenn dieser entfernt wird:

SQL-Code:
create table usr (
  id varchar(20) not null,
  name varchar(100),
  passwd varchar(20),
  locked smallint,
  constraint pk_usr primary key (id)
)

create table acl (
  id integer not null,
  name varchar(100),
  constraint pk_acl primary key (id)
)

create table usracl (
  usr_id varchar(20) not null,
  acl_id integer not null,
  constraint fk_usr foreign key (usr_id) references usr (id) on delete cascade,
  constraint fk_acl foreign key (acl_id) references acl (id) on delete cascade
)
Das Kennwort der Benutzer solltest Du natürlich nur als Hash speichern.

Gruß,
Marcel

Sven Janssen 10. Aug 2005 13:36

Re: Benutzer per SQL in Interbase anlegen
 
Ich weiß noch nicht.
Der Aufwand ist mir zu hoch.
Meine Idee ( und das realsiere ich gerade ) lege ich diverse ROLEs an und diese weise ich den einzelnen Benutzern zu.
Über ein eigenes Login Programm melden sich die Benutzer am Server an und greifen mit diesen Login Daten auch auf die Datenbank zu.
Mit einem Tool sollen sich die Anwender eigene Benutzer anlegen können, beim anlegen wird dem Benutzer eine ROLE zugewiesen. Vorteil ist auch das ich über IBDatabaseInfo und auch im IB Server sehe wer auf die Datenbank verbunden ist. Sonst sehe ich dort nur SYBASE oder den Benutzer den ich dafür benutze.

Mit der Installation meinte ich eigentlich etwas anderes.
Muss auf dem Client Rechner auf welchem das Programm läuft was über TIBSecurityService Benutzer anlegt und löscht etwas spezielles installiert sein?
In der Hilfe steht Note: You must install InterBase 6 to use this feature..
Ist damit der Zugriff auf Interbase 6 Datenbanksysteme gemeint, oder muss der Interbase 6 lokal auf dem Computer installiert sein?

Sven

Marcel Gascoyne 10. Aug 2005 14:23

Re: Benutzer per SQL in Interbase anlegen
 
Zitat:

Zitat von Sven Janssen
Vorteil ist auch das ich über IBDatabaseInfo und auch im IB Server sehe wer auf die Datenbank verbunden ist. Sonst sehe ich dort nur SYBASE oder den Benutzer den ich dafür benutze.

Da ich meistens mit einem Dreischichtmodell arbeite war das für mich bisher immer zweitrangig...

Zitat:

Zitat von Sven Janssen
Muss auf dem Client Rechner auf welchem das Programm läuft was über TIBSecurityService Benutzer anlegt und löscht etwas spezielles installiert sein?
In der Hilfe steht Note: You must install InterBase 6 to use this feature..
Ist damit der Zugriff auf Interbase 6 Datenbanksysteme gemeint, oder muss der Interbase 6 lokal auf dem Computer installiert sein?

Interbase unterstützt erst ab Version 6 die Funktionen für die Benutzerverwaltung. Der Server muss also >= Interbase 6.0 (oder Firebird) sein. Auf dem Client benötigst Du nur die gds32.dll >= 6.0, ein Server muss dort nicht installiert sein.

Gruß,
Marcel


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:38 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