Signatur
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
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);
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);
// 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.