Start · Sprachen · PHP · Referenz · ibase_add_user

ibase_add_user

Funktion

Fügt einen neuen Benutzer zur Firebird/InterBase-Security-Datenbank hinzu.

seit PHP 4.2.0 Kategorie: db

Signatur

ibase_add_user(resource $service_handle, string $user_name, string $password, string $first_name = '', string $middle_name = '', string $last_name = ''): bool

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

Typ
bool
Beschreibung
Gibt 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 'newuser' wurde erfolgreich angelegt.

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);
?>
Benutzer 'reportuser' erfolgreich in der Security-DB angelegt.

// 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.