Bonjour à tous.

J'ai installé, il y a quelques jours la version gratuite de SQL Server 2014 Express (cela va faire plaisir à SQLPRO car je vais enfin me mettre à SQL Server).
J'ai fait quelques tests sans trop de problèmes, en ligne de commande avec "SQLCMD".
Jusqu'à présent, tout fonctionne correctement, sauf que je me retrouve avec un problème d'administration que je n'arrive pas à résoudre.

Quand je lance "sqlcmd", avec le paramétrage suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sqlcmd -S orion\SQLEXPRESS  -e  -E  -i %FIC%  -c ;
dans un batch windows, je constate que j’accède à mon compte windows (-E (use trusted connection)).
C'est ce que je voulais et c'est tout à fait normal, car j'ai demandé à l'installation un accès avec authentification windows. Mon compte "ordi\compte".

Sous WampServer, j'ai testé un accès à ma base de données "My_Base" que j'ai créé en ligne de commande, donc sous le compte "ordi\compte".
Pour ce test, je suis passé par le driver "sqlsrv", que j'ai dû installer sur mon ordinateur pour la version php que j'utilise.

Question 1 : pourquoi n'existe-t-il pas une version 64 bits de ce driver ? Ni une version pour php 7.0 ?

J'ai fait un accès avec le paramétrage suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$nom_du_serveur  = "ordi\SQLExpress";
$info_connexion  = array("DATABASE"=>"My_Base", "UID"=>"", "PWD"=>"");
$link = sqlsrv_connect($nom_du_serveur,$info_connexion);
J'ai obtenu le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SQLSTATE : 28000
Code     : 18456
Message  : [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Échec de l'ouverture de session de l'utilisateur 'AUTORITE NT\Système'.
Il m'a fallu du temps pour comprendre que je devais ajouter des autorisations au compte "AUTORITE NT \Système".
Et pour ce faire, je devais utiliser : "SQL Server 204 Management Studio". J'ai pu résoudre mon problème sans trop de difficulté et tout est rentré dans l'ordre.

Question 2 : pourquoi ai-je par défaut ce compte ? Je m'attendais à obtenir "Ordi\Compte.

Je modifie les paramètres de mon accès via php, en mettant ceux de mon compte windows.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$nom_du_serveur  = "ordi\SQLExpress";
$info_connexion  = array("DATABASE"=>"My_Base", "UID"=>"ordi\compte", "PWD"=>"motdepasse");
$link = sqlsrv_connect($nom_du_serveur,$info_connexion);
J'obtiens le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SQLSTATE : 28000
Code     : 18456
Message  : [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Échec de l'ouverture de session de l'utilisateur 'ordi\compte'.
J'ai reporté les mêmes modifications que j'ai fait pour le compte "AUTORITE NT\Système", et j'ai l'erreur ci-dessus.
De plus, que ce soit avec "AUTORITE NT\Système" ou avec "Ordi\Compte", j'accède en authentification windows.

Question 3 : pourquoi l'accès à mon compte windows est rejeté ?

Maintenant, je fais le test avec le compte "sa" auquel j'ai mis un mot de passe. Et là, oh miracle, j’accède à SQL Server et mon test se passe correctement.
Oui, entre temps, j'ai basculé de authentification windows à authentification Sql Server.

Question 4 : est-ce au niveau de "management Studio" que je dois appliquer une modification ? Et si oui, laquelle

En comparant ces trois comptes, j'ai trouvé une différence que je ne m'explique pas.
Quand je fais "afficher les propriétés de connexions", à la ligne "protocole réseaux", pour mon compte, j'ai "tcpip" , tandis que pour les deux autres (ceux qui fonctionnent), j'ai "par défaut".
J'ai cherché et je n'ai pas trouvé comme mettre "par défaut" à mon compte windows". D'ailleurs, je ne sais même pas si c'est le problème que je rencontre.

Question 5 : comment identifier par une requête SQL le compte auquel je me connecte (à faire sous sqlcmd) ?

Merci !
@+