Bonjour,

Pour la première fois, je dois me connecter à une base de données SqlServer depuis un script PHP en utilisant PDO.
Le DBA m'oblige à me connecter avec un compte de service et en utilisant l'authentification Windows.

J'ai fais des recherches et il semblerait que pour cela, je dois indiquer 'null' dans les paramètres login et mdp de la commande de connexion.
Voici ce que j'ai donc écrit:

$pdo = new PDO("sqlsrv:Server=" . $host . ";Database=" .  $db, null, null);

Ca ne marche pas (je m'en doutais) et cela me retourne ce message:
SQLSTATE[HY000]: [Microsoft][ODBC Driver 17 for SQL Server]SSPI Provider: No Kerberos credentials available (default cache: FILE:/tmp/krb5cc_48)

J'ai cherché sur le net comment règler ce problème, mais je ne trouve rien d'intéressant.
Je ne trouve nulle part une explication sur la façon d'indiquer à PDO comment utiliser/récupérer les infos du compte de service.
J'ai aussi cherché sur le mot clé "Kerberos", mais je n'ai rien trouvé non plus...du moins que je puisse faire en PHP, car mon DBA me dit que d'autres logiciels se connecte à Sqlserver de cette façon et que cela fonctionne bien.
En gros, DIY !!

Merci pour vos idées et vos pistes..

Marco

1 réponse


Salut

Selon la doc de Microsoft

Je crois que tu dois metre des string vide au lieu de null

$pdo = new PDO("sqlsrv:Server=" . $host . ";Database=" .  $db, "", "");