Je déploie sql express avec mon application. J'aimerais que ce moteur de base de données accepte les connexions à distance. Je sais comment le configurer en lançant le gestionnaire de configuration de sql server, en activant les connexions tcp/ip, en spécifiant les ports, etc. Je me demande s'il sera possible de faire la même chose à partir de la ligne de commande.
Ou peut-être vais-je devoir créer un "Projet de serveur SQL Server 2008" dans Visual Studio.
EDIT 1
J'ai posté la même question ici mais je voudrais faire la même chose sur une instance de sql express qui est déjà installée. Jetez un coup d'œil à la question ici
EDIT 2
J'ai trouvé ces liens qui prétendent faire quelque chose de similaire et je n'arrive toujours pas à le faire fonctionner.
1) http://support.microsoft.com/kb/839980
4) http://datazulu.com/blog/post/Enable_sql_server_tcp_via_script.aspx
EDIT 3
Comme Krzysztof l'a indiqué dans sa réponse, j'ai besoin (plus d'autres choses que je sais nécessaires) de
1 - activer TCP/IP
J'ai réussi à le faire en installant une nouvelle instance de SQLExpress en passant le paramètre /TCPENABLED=1
. Lorsque j'installe sql express comme dans cet exemple . cette instance de sql express aura TCP/IP activé.
2 - Ouvrez les bons ports dans le pare-feu.
(J'ai fait cela manuellement mais je pense que je pourrai trouver comment le faire avec c#). Jusqu'à présent, j'ai dû jouer avec cette commande console :
netsh firewall set portopening protocol = TCP port = 1433 name = SQLPort mode = ENABLE scope = SUBNET profile = CURRENT
3 - Modifier les propriétés TCP/IP activer une adresse IP
Je n'ai pas réussi à trouver comment activer une IP, changer un port, etc. Je pense que ce sera l'étape la plus compliquée à résoudre.
4 - Activer l'authentification en mode mixte dans sql server
J'ai réussi à le faire en installant SQL Express en passant le paramètre /SECURITYMODE=SQL
se référer au lien de l'étape 1.
SQL Server express requiert ce type d'authentification pour accepter les connexions à distance.
5 - Changer le passowrd par défaut de l'utilisateur (sa)
Par défaut, le compte sa a un passowrd NULL. Afin d'accepter des connexions, cet utilisateur doit avoir un mot de passe. J'ai changé le passowrd par défaut du sa avec le script :
ALTER LOGIN [sa] WITH PASSWORD='*****newPassword****'
6 - enfin
sera capable de se connecter si toutes les dernières étapes sont satisfaites :
SQLCMD -U sa -P newPassword -S 192.168.0.120\SQLEXPRESS,1433
en tapant cela dans la ligne de commande : la chaîne de connexion en C# sera très similaire. Je devrai remplacer -U pour user, -P pour password et -S pour data source. Je ne me souviens pas des noms exacts.