Wie stelle ich mit PHP 8 eine ODBC-Verbindung zu SQL Server mit Windows-Authentifizierung her?

Antwort

Um mit PHP 8 eine ODBC-Verbindung zu einem Microsoft SQL Server unter Verwendung der Windows-Authentifizierung herzustellen, gehst du wie folgt vor: ### Voraussetzungen 1. **ODBC-Treiber für SQL Server**: Stelle sicher, dass der Microsoft ODBC Driver für SQL Server auf deinem System installiert ist. [Download-Link (Microsoft)](https://learn.microsoft.com/de-de/sql/connect/odbc/download-odbc-driver-for-sql-server) 2. **PHP ODBC-Erweiterung**: Die ODBC-Erweiterung (`php_odbc` oder `php_pdo_odbc`) muss in deiner `php.ini` aktiviert sein. ### Beispiel: Verbindung mit ODBC und Windows-Authentifizierung #### 1. ODBC Data Source Name (DSN) einrichten (optional) Du kannst einen DSN in der ODBC-Systemsteuerung anlegen oder einen sogenannten "DSN-less"-Verbindungsstring verwenden. #### 2. PHP-Code ```php <?php $server = 'SERVERNAME'; // z.B. 'localhost\SQLEXPRESS' oder IP-Adresse $database = 'Datenbankname'; // DSN-less Connection String für Windows-Authentifizierung $dsn = "Driver={ODBC Driver 18 for SQL Server};Server=$server;Database=$database;Trusted_Connection=Yes;"; // Verbindung herstellen $conn = odbc_connect($dsn, '', ''); // Benutzername und Passwort leer lassen if (!$conn) { exit("Verbindung fehlgeschlagen: " . odbc_errormsg()); } echo "Verbindung erfolgreich!"; // Beispielabfrage $sql = "SELECT @@VERSION"; $rs = odbc_exec($conn, $sql); while (odbc_fetch_row($rs)) { echo odbc_result($rs, 1); } odbc_close($conn); ?> ``` #### Hinweise - **Trusted_Connection=Yes** sorgt dafür, dass die Windows-Authentifizierung verwendet wird. - Der Benutzer, unter dem der Webserver (z.B. Apache, IIS) läuft, muss auf dem SQL Server die nötigen Rechte haben. - Bei aktuellen ODBC-Treibern kann auch `Authentication=ActiveDirectoryIntegrated` verwendet werden, das ist aber für klassische Windows-Authentifizierung nicht nötig. - Unter Linux ist die Windows-Authentifizierung schwieriger und benötigt z.B. [Kerberos](https://learn.microsoft.com/de-de/sql/connect/odbc/linux-mac/using-integrated-authentication?view=sql-server-ver16). #### Weitere Informationen - [Microsoft ODBC Driver for SQL Server – Dokumentation](https://learn.microsoft.com/de-de/sql/connect/odbc/) - [PHP: odbc_connect – Manual](https://www.php.net/manual/de/function.odbc-connect.php) Damit kannst du mit PHP 8 und ODBC eine Verbindung zu einem SQL Server mit Windows-Authentifizierung herstellen.

Neue Frage stellen

Verwandte Fragen

Wie kann man ein PHP 5.6 Script auf PHP 8.4 konvertieren?

Um ein PHP 5.6-Skript auf PHP 8.4 zu migrieren, sind mehrere Schritte notwendig, da sich die Sprache in Syntax, Funktionen und Verhalten deutlich verändert hat. Hier sind die wichtigsten Punkte,... [mehr]

Wie definiere ich in PHP8 eine Variable, um Warnungen wie 'Undefined variable' zu vermeiden?

Um in PHP 8 eine Variable zu definieren und die Warnung „Warning: Undefined variable“ zu vermeiden, musst du sicherstellen, dass die Variable vor ihrer Verwendung initialisiert wird. Das b... [mehr]

Wie kann ich in PHP8 Excel-Dateien erstellen?

In PHP8 kannst du Excel-Dateien am besten mit der Bibliothek [PhpSpreadsheet](https://phpspreadsheet.readthedocs.io/) erstellen. PhpSpreadsheet ist der Nachfolger von PHPExcel und unterstützt das... [mehr]

Wie erstelle ich in PHP ein MySQL Prepared Statement mit zwei Bedingungen, wobei eine Bedingung optional alles abdecken kann?

Um in PHP mit MySQL (MySQLi oder PDO) ein Prepared Statement mit zwei Bedingungen zu erstellen, wobei eine Bedingung optional ist (z.B. „alles“ oder ein bestimmter Wert), kannst du das wie... [mehr]

Wie bettet man HTML-Elemente in PHP allgemein gültig und optimal ein?

HTML-Elemente werden in PHP am besten eingebettet, indem du sie entweder direkt im HTML-Code schreibst und PHP-Blöcke nur für dynamische Inhalte verwendest, oder indem du sie als Strings in... [mehr]

Wie finde ich in PHP nach einer SQL-Abfrage im Ergebnis-Array den Eintrag, bei dem ein Attribut einen bestimmten Wert hat?

Angenommen, du hast nach einer SQL-Abfrage ein Array von Datensätzen, z.B. so: ```php $ergebnis = [ ['id' => 1, 'name' => 'Anna'], ['id' =&g... [mehr]

Wie kann man verhindern, dass eine mit FPDF erstellte PDF-Datei in PHP aus dem Cache geöffnet wird?

Das Problem, dass eine mit FPDF erstellte PDF-Datei im Browser aus dem Cache geladen wird, liegt meist daran, dass der Browser die Datei nicht als „neu“ erkennt und daher eine ältere... [mehr]

Was gibt sprintf('%d', '1.6') in PHP aus?

`sprintf('%d', '1.6')` gibt in PHP den Wert `1` aus. Begründung: Das Format `%d` erwartet einen Integer-Wert. Wenn ein String wie `'1.6'` übergeben wird, wan... [mehr]

Wie gebe ich ein Array in PHP 8 per Schleife aus?

Um einen Array in PHP 8 in einer Schleife anzuzeigen, kannst du zum Beispiel eine foreach-Schleife verwenden. Hier ein einfaches Beispiel: ```php <?php $fruits = ["Apfel", "Banane&q... [mehr]

Wie stelle ich mit PHP8 eine ODBC-Verbindung zum SQL-Server mit Windows Authentifizierung her?

Um mit PHP8 eine ODBC-Verbindung zu einem Microsoft SQL Server unter Verwendung der Windows-Authentifizierung (Integrated Security) herzustellen, sind folgende Schritte notwendig: ### Voraussetzungen... [mehr]