J'essaie de configurer ma machine virtuelle avec SQL Server 2008 R2 Express pour pouvoir uniquement accéder à distance à SQL à l'aide de SQL Server Management Studio à partir de la machine hôte.
Configuration de la VM
- sous Windows Web Server 2008 R2
- Il y a deux cartes réseau:
- Ponté pour qu'il se connecte à Internet
- Héberger uniquement afin de pouvoir communiquer plus rapidement sur un réseau virtuel
- Les services SQL Engine et Browser sont tous deux en cours d'exécution
- J'ai activé le protocole TCP / IP pour SQL Express mais je n'ai configuré aucune adresse IP (onglet séparé)
- J'ai ajouté des règles de pare-feu entrantes pour:
- 1433 port TCP
- 1434 port UDP
- Si je regarde dans les connexions réseau, je vois mes deux cartes réseau connectées aux réseaux. Je peux définir un réseau ponté sur Lieu de travail mais je ne peux pas changer le type de réseau du réseau uniquement hôte. Donc, il est réglé sur Publique par défaut. Je ne sais pas si cela a quelque chose à voir avec ça, mais c'est comme ça.
Configuration de l'hôte
La seule chose que j'ai faite sur mon hôte, c'est que j'ai attribué un nom à mon IP de VM. Et je l'ai fait avec l'adresse IP réservée à l'hôte. J'ai ajouté une entrée dans mon fichier HOSTS.
Problème
Ensuite, j'ouvre SSMS sur mon ordinateur hôte et si je sélectionne Parcourir pour plus dans le Connecter au serveur fenêtre de dialogue, je peux réellement voir l'instance SQL de ma machine virtuelle. Mais lorsque j'essaie de me connecter, c'est ce que je reçois lorsque j'essaie de me connecter des trois manières suivantes:
nom de la machine (mon fichier HOSTS fera le remappage IP)
adresse IP réseau pontée
adresse IP de l'hôte uniquement
Question 1: Que puis-je configurer pour pouvoir accéder à l'instance SQL de ma machine virtuelle? Si possible, j'aimerais également le configurer, afin que je ne puisse y accéder que via le réseau Hots-only et non via le réseau ponté. Mais ce ne serait qu'un bonus supplémentaire si je pouvais le configurer de cette façon.
Question 2: Ai-je réellement besoin de SQL Browser pour fonctionner car, autant que je sache, il ne s'occupe que de l'instance SQL détectable. Si je sais que l'instance SQL est Là et je sais qu'il utilise le port 1433, je ne peux pas simplement me connecter à l'aide de cette Nom du serveur :
DATAVM\SQLEXPRESS,1433
modifier
C'est le résultat de netstat:
J'ai aussi couru portqry sur l'hôte pour vérifier mon instance SQL sur ma machine virtuelle. Si je tente une adresse IP pontée, j'obtiens la réponse de SQL Browser:
Starting portqry.exe -n 192.168.1.143 -e 1434 -p UDP ...
Querying target system called:
192.168.1.143
Attempting to resolve IP address to a name...
IP address resolved to Datavm
querying...
UDP port 1434 (ms-sql-m service): LISTENING or FILTERED
Sending SQL Server query to UDP port 1434...
Server's response:
ServerName DATAVM
InstanceName SQLEXPRESS
IsClustered No
Version 10.50.1600.1
tcp 49159
Comme je peux le voir dans ce résultat, mon instance SQL écoute actuellement sur le port TCP 49159.
Alors je suis allé en configuration SQL et j'ai changé ce port en 1433.
Question 3: Est-ce normal que le port n'ait pas été défini sur 1433 par défaut? Devrais-je le reconvertir en 49159 et changer ma règle de pare-feu entrant pour passer par ce port ou si je devais le laisser maintenant sur 1433?
En changeant de port en 1433 Je peux me connecter à la machine virtuelle à partir de mon ordinateur hôte SSMS . Mais je ne peux le faire qu'en utilisant une adresse IP pontée.
Si je comprends bien les paramètres TCP / IP dans le protocole SQL, le Adresses IP devrait lister toutes les adresses IP de la machine. Je peux en voir 5:
- adresse pontée V6 de la carte réseau
- adresse pontée VIC V4
- localhost V6 (:: 1)
- localhost V4 (127.0.0.1)
- certains ? Adresse V6 non liée à un réseau ponté ou à un hôte uniquement (fe80 :: 100: 7f: fffe% 12)
Je suppose que c'est aussi la raison pour laquelle je ne peux pas me connecter à l'aide d'un réseau uniquement hôte ... Mais comment puis-je configurer ma machine virtuelle de sorte que je puisse (et éventuellement désactiver la passerelle)?
netstat -a
et vous pouvez également vouloir configurer les adresses IP (étape quatre) pour voir si cela améliore quelque chose.