Signatur
Beschreibung
ibase_modify_user() ermöglicht es, die Eigenschaften eines vorhandenen Benutzers in der Security-Datenbank eines Firebird- oder InterBase-Datenbankservers zu ändern. Dazu zählen Passwort sowie optionale Namensfelder wie Vor-, Zwischen- und Nachname.
Voraussetzung ist ein aktiver Service-Handle, der zuvor mit ibase_service_attach() erzeugt wurde. Nur Benutzer mit ausreichenden Datenbankrechten (z. B. SYSDBA) dürfen andere Benutzerkonten modifizieren.
Die Funktion ist besonders nützlich in Administrationsskripten, die Benutzerverwaltungsaufgaben auf Firebird/InterBase-Servern automatisieren, etwa das regelmäßige Rotieren von Passwörtern oder das Aktualisieren von Stammdaten.
Hinweis: Die ibase_*-Erweiterung (interbase) wurde mit PHP 8.0 aus dem PHP-Kern entfernt. Ab PHP 8.0 steht alternativ die PECL-Erweiterung ibase oder die firebird-PDO-Erweiterung zur Verfügung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $service_handle Pflicht | resource | Ein aktiver Service-Handle, der mit ibase_service_attach() geöffnet wurde. |
|
| $user_name Pflicht | string | Der Name des Benutzers, dessen Daten geändert werden sollen. Muss in der Security-Datenbank bereits vorhanden sein. | |
| $password Pflicht | string | Das neue Passwort für den Benutzer. Sollte hinreichend komplex sein und sicher übertragen werden. | |
| $first_name | string | Optionaler Vorname des Benutzers. | |
| $middle_name | string | Optionaler zweiter Vorname (Mittelname) des Benutzers. | |
| $last_name | string | Optionaler Nachname des Benutzers. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. fehlenden Rechten oder ungültigem Benutzernamen).Beispiele
Passwort eines Benutzers ändern
<?php
// Verbindung zum Firebird-Dienst herstellen
$service = ibase_service_attach('localhost', 'SYSDBA', 'masterkey');
if ($service) {
// Passwort des Benutzers 'john_doe' aktualisieren
$result = ibase_modify_user($service, 'john_doe', 'NeuesPasswort!2024');
if ($result) {
echo 'Benutzer erfolgreich aktualisiert.';
} else {
echo 'Fehler beim Aktualisieren des Benutzers.';
}
ibase_service_detach($service);
} else {
echo 'Verbindung zum Firebird-Dienst fehlgeschlagen.';
}
Benutzer mit vollständigen Namensangaben aktualisieren
<?php
// Service-Handle öffnen
$service = ibase_service_attach('db.example.com', 'SYSDBA', 'masterkey');
if ($service) {
// Passwort und Namensfelder gleichzeitig aktualisieren
$result = ibase_modify_user(
$service,
'jane_doe',
'SicheresPasswort#99',
'Jane',
'M.',
'Doe'
);
echo $result ? 'Benutzerdaten wurden aktualisiert.' : 'Aktualisierung fehlgeschlagen.';
ibase_service_detach($service);
}
// Wichtig · Fallstricke
Sicherheitshinweis: Passwörter sollten niemals im Klartext im Quellcode gespeichert werden. Verwende Umgebungsvariablen oder sichere Konfigurationsdateien außerhalb des Webverzeichnisses.
Deprecation: Die ibase_*-Erweiterung wurde in PHP 7.4 als veraltet markiert und mit PHP 8.0 vollständig entfernt. Für neuere PHP-Versionen sollte auf PDO_Firebird oder die PECL-Erweiterung umgestellt werden.
Der aufrufende Datenbankbenutzer (z. B. SYSDBA) benötigt ausreichende Serverrechte, um fremde Benutzerkonten zu modifizieren. Ohne die nötigen Rechte gibt die Funktion false zurück.