Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firebird: Grundsatzfragen zu User / Role (https://www.delphipraxis.net/158098-firebird-grundsatzfragen-zu-user-role.html)

fkerber 5. Feb 2011 13:38

Datenbank: Firebird • Version: 2.5 • Zugriff über: IBExpert

Firebird: Grundsatzfragen zu User / Role
 
Hi,

wahrscheinlich sind die Fragen dämlich, aber irgendwie habe ich einige Verständnisschwierigkeiten, was die ersten Schritte mit Firebird angeht.

Also ich brauche nachher eine DB auf die mehrere Instanzen meines Programms von verschiedenen Rechnern aus zugreifen können. Daher habe ich also mal die Server-Version von Firebird installiert - soweit so gut. Da gibt es dann auch den SYSDBA, dessen Passwort ich geändert habe - auch gut.
Dann habe ich 2 Benutzer angelegt - UserA ist der, der später Zugriff auf die DB bekommen soll und UserB, den ich als "Kontrolle" benutzen will.
Jetzt habe ich als UserA eine DB angelegt und dann dort auch eine Tabelle.

Die erste Frage, die sich mir stellt:
Wieso darf sich UserB zu dieser DB verbinden bzw. wie kann ich das verhindern? Er kann zwar an der Tabelle nix verändern, aber zumindest die Tabellenstruktur sehen etc.
Es geht sogar soweit, dass UserB in dieser DB auch Tabellen erstellen kann.
Ist das ein Feature?
Geht es nicht, dass eine komplette DB einem Nutzer "gebe" und nur der darf darin "rumfummeln"? So kenne ich es zumindest ja von MySQL DBs...

Die andere Frage bezieht sich auf die Weitergabe der DB.
Wenn ich das ganze nun auf dem späteren DB-Server ans laufen bekommen möchte, dann muss ich ja dort zuerst mal FB installieren. Und dann?
Ich kopiere die FDB (inkl. Alias anlegen etc) und dann?
Muss ich dann auf dem neuen Server den gleichen Benutzer anlegen (mit gleichem Passwort) wie auf meinem Entwicklungsserver und dann kann auch auf dem Server auf die DB zugegriffen werden oder muss ich da irgendwie anders vorgehen?


Und schlussendlich noch:
Welche Rollen ;) spielen Roles?


LG, Frederic

mkinzler 5. Feb 2011 14:02

AW: Firebird: Grundsatzfragen zu User / Role
 
Zitat:

Wieso darf sich UserB zu dieser DB verbinden bzw. wie kann ich das verhindern? Er kann zwar an der Tabelle nix verändern, aber zumindest die Tabellenstruktur sehen etc.
Es geht sogar soweit, dass UserB in dieser DB auch Tabellen erstellen kann.
Ist das ein Feature?
Geht es nicht, dass eine komplette DB einem Nutzer "gebe" und nur der darf darin "rumfummeln"? So kenne ich es zumindest ja von MySQL DBs...
Eigentlich dürfte sich der Benutzer nicht verbinden können ( wenn er keine Rechte auf die DB hat).
Was für Rechte hat er den?
Zitat:

Muss ich dann auf dem neuen Server den gleichen Benutzer anlegen (mit gleichem Passwort) wie auf meinem Entwicklungsserver und dann kann auch auf dem Server auf die DB zugegriffen werden oder muss ich da irgendwie anders vorgehen?
Bisher ( bis Firebird <=2.5) gibt eine Passwortdatenbank pro Server. Es reicht also die Benutzer dort anzulegen. Die Rechte/Rollen sind aber in der Anwendungsdatenbank verankert.

Zitat:

Welche Rollen spielen Roles?
Man kann Rechte statt auf Benutzer auch auf Rollen schlüsseln und dann die Rolle für einen Benutzer erlauben. Dieser kann dann bei Verbindung die Rolle "Spielen"

fkerber 5. Feb 2011 14:08

AW: Firebird: Grundsatzfragen zu User / Role
 
Hi,

Zitat:

Zitat von mkinzler (Beitrag 1079702)
Was für Rechte hat er den?

ich denke mal, keine - aber wie kann ich das denn sehen?
Zumindest habe ich ihm keine gegeben.
Also ich hab einfach 2 User angelegt und mit dem einen die DB erstellt.
Mehr nicht....


LG, Frederic

mkinzler 5. Feb 2011 14:10

AW: Firebird: Grundsatzfragen zu User / Role
 
Schau mal im Rechtemanager ( IBExpert)

fkerber 5. Feb 2011 14:33

AW: Firebird: Grundsatzfragen zu User / Role
 
Hi,

meinst du den "Grant manager"?
Den gibt es leider nicht in der Free-Version.


LG, Frederic

mkinzler 5. Feb 2011 14:39

AW: Firebird: Grundsatzfragen zu User / Role
 
SQL-Code:
select
    * 
from
    RDB$User_Privileges
where
    RDB$USER = :user;

fkerber 5. Feb 2011 14:45

AW: Firebird: Grundsatzfragen zu User / Role
 
Hi,

solange UserB keine Tabelle darin hat, steht da nix über ihn drin.
Legt er eine Tabelle an, dann stehen Einträge drin

Code:
RDB$USER   RDB$GRANTOR   RDB$PRIVILEGE   RDB$GRANT_OPTION   RDB$RELATION_NAME   RDB$FIELD_NAME   RDB$USER_TYPE   RDB$OBJECT_TYPE
USERB   USERB   S   1   TABLE_NAME      8   0
USERB   USERB   I   1   TABLE_NAME      8   0
USERB   USERB   U   1   TABLE_NAME      8   0
USERB   USERB   D   1   TABLE_NAME      8   0
USERB   USERB   R   1   TABLE_NAME      8   0
Kannst du daraus Rückschlüsse ziehen?

LG, Frederic

IBExpert 6. Feb 2011 09:40

AW: Firebird: Grundsatzfragen zu User / Role
 
du kannst die Anmeldung an der DB verhindern, das geht bei fb21/25
mit einem Database Trigger. Erklärung und kleines Beispiel hier
http://ibexpert.net/ibe/index.php?n=...DBTriggerTypes

den kann man nur umgehen wenn man mit isql als owner oder als sysdba
einen speziellen parameter benutzt, deren kennwörter sollte aber sicherlich
eh kein unberechtigter user kennen.

Gruß
Holger
www.ibexpert.com

fkerber 6. Feb 2011 09:47

AW: Firebird: Grundsatzfragen zu User / Role
 
Hi,

ah, perfekt!
D.h. also von Haus aus ist das wirklich gewollt?
Gibt es dafür nachvollziehbare Gründe?


Kannst du vllt. auch noch etwas zur DB-Weitergabe sagen?
Also was ich auf dem neuen Server einrichten muss, damit ich die DB dort nutzen kann.
Logisch erscheinen würde mir gleicher Benutzername und gleiches PW - ist das so?



LG, Frederic

mkinzler 6. Feb 2011 09:51

AW: Firebird: Grundsatzfragen zu User / Role
 
Gleicher Benutzer reicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:11 Uhr.
Seite 1 von 2  1 2      

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