Start · Sprachen · PHP · Referenz · fbird_delete_user

fbird_delete_user

Funktion

Löscht einen Benutzer aus der Firebird/InterBase-Sicherheitsdatenbank.

seit PHP 5.0.0 Kategorie: db

Signatur

fbird_delete_user(resource $service_handle, string $user_name): bool

Beschreibung

fbird_delete_user() entfernt einen bestehenden Benutzer dauerhaft aus der Sicherheitsdatenbank eines Firebird- oder InterBase-Datenbankservers. Die Funktion ist ein Alias für ibase_delete_user() und gehört zur Firebird/InterBase-Erweiterung von PHP.

Um diese Funktion zu verwenden, wird zunächst eine Service-Verbindung über ibase_service_attach() benötigt. Diese stellt eine administrative Verbindung zum Datenbankserver her, die über die normalen Datenbankverbindungen hinausgeht und spezielle Verwaltungsoperationen erlaubt.

Die Funktion ist besonders nützlich für Datenbankadministratoren, die Benutzerverwaltungsaufgaben direkt aus PHP-Skripten heraus automatisieren möchten – etwa beim Deaktivieren von Zugängen inaktiver Benutzer oder beim Bereinigen von Testkonten.

Hinweis: Seit PHP 7.4 ist die ibase_-Erweiterung aus dem PHP-Core entfernt worden und wird als separates PECL-Paket (php-interbase) gepflegt. Ab PHP 8.0 ist diese Funktionalität nur noch über das PECL-Paket firebird verfügbar.

Parameter

Name Typ Default Beschreibung
$service_handle Pflicht resource Eine gültige Service-Verbindungsressource, die zuvor mit ibase_service_attach() geöffnet wurde.
$user_name Pflicht string Der Name des Benutzers, der aus der Sicherheitsdatenbank gelöscht werden soll. Bei Firebird werden Benutzernamen standardmäßig als Großbuchstaben behandelt.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn der Benutzer erfolgreich gelöscht wurde, oder false bei einem Fehler (z. B. wenn der Benutzer nicht existiert oder die Berechtigungen fehlen).

Beispiele

Benutzer aus der Firebird-Sicherheitsdatenbank löschen

<?php
// Service-Verbindung zum Firebird-Server aufbauen
$serviceHandle = ibase_service_attach('localhost', 'SYSDBA', 'masterkey');

if ($serviceHandle === false) {
    die('Service-Verbindung fehlgeschlagen.');
}

$userToDelete = 'TESTUSER';

// Benutzer löschen
$result = fbird_delete_user($serviceHandle, $userToDelete);

if ($result) {
    echo "Benutzer '{$userToDelete}' wurde erfolgreich gelöscht.\n";
} else {
    echo "Fehler beim Löschen des Benutzers '{$userToDelete}'.\n";
}

// Service-Verbindung schließen
ibase_service_detach($serviceHandle);
Benutzer 'TESTUSER' wurde erfolgreich gelöscht.

Mehrere Benutzer in einer Schleife löschen

<?php
// Service-Verbindung aufbauen
$serviceHandle = ibase_service_attach('localhost', 'SYSDBA', 'masterkey');

if ($serviceHandle === false) {
    die('Service-Verbindung konnte nicht hergestellt werden.');
}

// Liste der zu löschenden Benutzer
$usersToDelete = ['TESTUSER1', 'TESTUSER2', 'INACTIVEUSER'];

foreach ($usersToDelete as $user) {
    if (fbird_delete_user($serviceHandle, $user)) {
        echo "Benutzer '{$user}' erfolgreich gelöscht.\n";
    } else {
        echo "Fehler: Benutzer '{$user}' konnte nicht gelöscht werden.\n";
    }
}

ibase_service_detach($serviceHandle);
Benutzer 'TESTUSER1' erfolgreich gelöscht. Benutzer 'TESTUSER2' erfolgreich gelöscht. Benutzer 'INACTIVEUSER' erfolgreich gelöscht.

// Wichtig · Fallstricke

Sicherheitshinweis: Diese Funktion erfordert administrative Datenbankrechte (i. d. R. den Benutzer SYSDBA). Zugangsdaten sollten niemals im Quellcode hartcodiert werden – stattdessen Umgebungsvariablen oder sichere Konfigurationsdateien außerhalb des Web-Roots verwenden.

Verfügbarkeit: fbird_delete_user() ist ein Alias für ibase_delete_user(). Ab PHP 7.4 ist die Erweiterung nicht mehr Bestandteil des PHP-Kerns und muss über PECL nachinstalliert werden. Für neue Projekte sollte geprüft werden, ob modernere Treiber (z. B. über PDO) zur Verfügung stehen.

Groß-/Kleinschreibung: Firebird behandelt Benutzernamen intern als Großbuchstaben. Kleinbuchstaben im user_name-Parameter werden in der Regel automatisch konvertiert, es empfiehlt sich jedoch, Benutzernamen stets in Großbuchstaben zu übergeben.