Entwickler-Ecke

Datenbanken - SQL User sperren


Wuschl - Mo 28.10.02 16:30
Titel: SQL User sperren
Hallo! :)

Ich hab da ein kleines problem bei dem mir die lösung als anfänger etwas schwerfällt!
Also ich habe eine SQL-Tabelle in der verschieden Userdaten für eine Internetanwendung gespeichert sind (Nickname, Vorname, Passwort etc.) wie ist es mir jetzt möglich einen bestimmte User zu sperren, also das er sich nicht mehr einloggen kann??? Wäre für jede Hilfe dankbar!! :wink:

mfg
Wuschl


MrSpock - Di 29.10.02 08:37

Hallo Wuschl,

in der Regel legst du bei SQL Datenbanken als Admin USER Fest, die Zugriff auf bestimmte Datenbanken haben sollen. Diese kannst du auch wieder löschen, so dass der entsprechende User keinen Zugriff mehr hat.

Welches Datenbankmanagementsystem nutzt du denn? Interbase?


Wuschl - Di 29.10.02 09:32

Also mit Interbase hab ich noch nichts gemacht! MySQL Front habe ich zum editieren benutzt! Aber ich glaub du hast mich sowieso etwas falsch verstanden, ich will nicht die zugriffsrechte für die sperren die auf die datenbank zugreifen und sie verändern können sondern die leute deren daten in der datenbank eingetragen sind (wie eben passwort, username etc) und deren zugang zu einer webpage eben oder so dann gesperrt wird!


Udontknow - Di 29.10.02 09:57

Also, das ist so eine Web-Anwendung, ja?

Dann ändere doch einfach das Passwort des Benutzers in dieser Tabelle. Dann kann er sich ja nicht mehr einloggen.

Cu,
Udontknow


MrSpock - Di 29.10.02 10:02

Hallo Wuschl,

ich bin mir nicht sicher, ob ich das jetzt richtig verstanden habe :nut: . Wenn in der Tabelle alle Nutzer stehen, die Zugriff haben und du den Zugriff für einen bestimmten Nutzer sperren möchtest, könntest du ja diesen aus der Tabelle löschen :!: :?: Bzw. eine neue Tabelle anlegen, die nur die Nutzer enthält, die Zugriff haben. Du könntest alternativ ein neues Feld hinzufügen z.B. canExecute, das anzeigt, ob der Nutzer die Anwendung starten darf oder nicht. Vor dem Start der Anwendung wertest du das Feld dann aus und verweigerst ggf. die Ausführung.


Wuschl - Di 29.10.02 10:03

Ne ist keine webanwendung, das war jetzt nur als beispiel, ich realisiere das schon mit delphi! Ich wollte einfach z.B ne Checkbox machen mit gesperrt JA/Nein klar könnte ich da das passwort ändern aber wär dann etwas umständlich wenn ich die sperre wieder wegnehmen will wie?

mfg
Wuschl


Wuschl - Di 29.10.02 10:07

danke spock, aber hättest du mir da vielleicht ein kleines beispiel?


MrSpock - Di 29.10.02 11:16

Hallo Wuschl,

also zunächst müsstest du die Tabelle "User" ändern:


Quelltext
1:
2:
ALTER TABLE User 
  ADD canExecute INTEGER


Als Typ habe ich mal Integer gewählt, weil nicht alle SQL Datenbanken Boolean Werte oder SMALLINT unterstützen.

Der Wert 0 wäre dann "nicht erlaubt".

Du kannst dann einen Nutzer ausschließen, indem du den Wert des Users im Feld canExecute auf 0 setzt:


Quelltext
1:
UPDATE User Set canExecute=0 WHERE ID = 123                    


Im Programm liest du den Wert des Feldes


Quelltext
1:
SELECT canEcexute FROM User WHERE ID=123                    


und weist dann, ob der Nutzer das Programm Starten darf oder nicht.


UGrohne - Di 29.10.02 11:19

Du willst also nur vorübergehen den Zugriff auf bestimmte Tabellen oder die ganze Datenbank sperren, aber der User soll noch da bleiben? Dann erkundige Dich mal nach dem SQL-Befehl GRANT

Kenne die Syntax im Moment nicht genau, aber da kannst Du festlegen, welche Rechte ein User bei bestimmten Tabellen oder ich glaub auch die gesamte Datenbank hat.

[Edit]: OK, habs auch falsch verstanden.... *g* Bin heute morgen wohl noch nicht ganz auf den Beinen. Dann is natürlih die Lösung über mir etwas besser *g*.


Wuschl - Di 29.10.02 11:49

Ok dankde ich probiers mal aus ;)

mfg
Wuschl