Signatur
Beschreibung
ibase_add_user() legt einen neuen Benutzer in der Security-Datenbank eines Firebird- oder InterBase-Datenbankservers an. Die Funktion setzt eine aktive Service-Manager-Verbindung voraus, die zuvor mit ibase_service_attach() hergestellt wurde.
Die Funktion eignet sich für administrative Aufgaben, bei denen Benutzerkonten programmatisch verwaltet werden müssen, z. B. in Administrations-Tools oder automatisierten Provisionierungs-Skripten. Die optionalen Parameter first_name, middle_name und last_name speichern ergänzende persönliche Informationen zum Benutzer in der Security-Datenbank.
Zu beachten ist, dass Benutzernamen in Firebird/InterBase nicht case-sensitiv sind und intern in Großbuchstaben gespeichert werden. Passwörter hingegen sind case-sensitiv und sollten sicher gewählt werden.
Achtung: Die gesamte ibase_*-Erweiterung (Interbase) wurde mit PHP 8.0 aus dem PHP-Kern entfernt. Für aktuelle Projekte sollte stattdessen die Firebird/InterBase-PDO-Erweiterung oder fbird_add_user() verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $service_handle Pflicht | resource | Ein gültiges Service-Handle, das zuvor mit ibase_service_attach() erzeugt wurde. |
|
| $user_name Pflicht | string | Der Name des neuen Benutzers. Wird intern in Großbuchstaben gespeichert. Maximal 31 Zeichen. | |
| $password Pflicht | string | Das Passwort des neuen Benutzers. Case-sensitiv; sollte ausreichend komplex sein. | |
| $first_name | string | Optionaler Vorname des Benutzers, der in der Security-Datenbank gespeichert wird. | |
| $middle_name | string | Optionaler zweiter Vorname oder Initiale des Benutzers. | |
| $last_name | string | Optionaler Nachname des Benutzers, der in der Security-Datenbank gespeichert wird. |
Rückgabewert
true zurück, wenn der Benutzer erfolgreich angelegt wurde, andernfalls false.Beispiele
Neuen Firebird-Benutzer anlegen
<?php
// Verbindung zum Firebird Service Manager herstellen
$service = ibase_service_attach('localhost', 'SYSDBA', 'masterkey');
if ($service) {
// Neuen Benutzer anlegen
$result = ibase_add_user(
$service,
'newuser',
'SecureP@ss123',
'Max',
'',
'Mustermann'
);
if ($result) {
echo "Benutzer 'newuser' wurde erfolgreich angelegt.";
} else {
echo "Fehler beim Anlegen des Benutzers.";
}
ibase_service_detach($service);
} else {
echo "Verbindung zum Service Manager fehlgeschlagen.";
}
?>
Benutzer anlegen mit Fehlerbehandlung
<?php
$host = 'localhost';
$adminUser = 'SYSDBA';
$adminPass = 'masterkey';
$service = ibase_service_attach($host, $adminUser, $adminPass);
if (!$service) {
die('Service-Verbindung fehlgeschlagen: ' . ibase_errmsg());
}
$newUser = 'reportuser';
$newPass = 'R3p0rt!Pass';
if (ibase_add_user($service, $newUser, $newPass, 'Report', '', 'User')) {
echo "Benutzer '{$newUser}' erfolgreich in der Security-DB angelegt.\n";
} else {
echo "Fehler: " . ibase_errmsg() . "\n";
}
ibase_service_detach($service);
?>
// Wichtig · Fallstricke
Deprecation / Entfernung: Die ibase_*-Funktionen wurden in PHP 7.4 als veraltet markiert und in PHP 8.0 vollständig entfernt. Für PHP 8+ muss die separate PECL-Erweiterung ibase bzw. interbase verwendet werden, oder es wird auf PDO_Firebird umgestiegen.
Sicherheit: Übergeben Sie Passwörter niemals im Klartext aus Benutzereingaben ohne vorherige Validierung. Da ibase_add_user() direkt mit dem Datenbankserver kommuniziert, sollten Verbindungen nach Möglichkeit über verschlüsselte Netzwerkverbindungen erfolgen.
Berechtigungen: Nur der SYSDBA oder ein Benutzer mit entsprechenden Administratorrechten darf Benutzer in der Security-Datenbank anlegen.