Connexion à un serveur MS SQL local à partir d'un client GUI

11

Je suis très nouveau sur les serveurs SQL et de base de données. J'ai récemment utilisé SQL Server Express et accédé à ma base de données à l'aide de SQL Server Management Studio sous Windows. J'essaie maintenant de réaliser une configuration similaire sur une machine Linux.

Je voudrais créer une instance SQL Server locale sur la machine, puis utiliser SQLectron comme client GUI pour interroger ma base de données. J'utilise Manjaro Linux et j'installe donc mes packages depuis l'AUR.

Jusqu'à présent, j'ai installé mssql-server, mssql-toolset sqlectron-gui. J'ai exécuté la sudo /opt/mssql/bin/mssql-conf setupcommande afin (je crois) d'installer un serveur local. Après cela, l'exécution de la commande systemctl status mssql-serverrenvoie ceci:

[kev @ XPS-Manjaro ~] $ systemctl status mssql-server
● mssql-server.service - Moteur de base de données Microsoft SQL Server
Chargé: chargé (/usr/lib/systemd/system/mssql-server.service; activé; préréglage fournisseur: désactivé)
Actif: actif (en cours d'exécution) depuis le mercredi 2017-08-23 13:43:49 IST; Il y a 2h 42min
    Documents: https://docs.microsoft.com/en-us/sql/linux
PID principal: 9130 (sqlservr)
    Tâches: 165
CGroup: /system.slice/mssql-server.service
        ├─9130 / opt / mssql / bin / sqlservr
        └─9144 / opt / mssql / bin / sqlservr

23 août 13:43:52 XPS-Manjaro sqlservr [9130]: [145B blob data]
23 août 13:43:52 XPS-Manjaro sqlservr [9130]: [66B blob data]
23 août 13:43:52 XPS-Manjaro sqlservr [9130]: [96B blob data]
23 août 13:43:52 XPS-Manjaro sqlservr [9130]: [100B blob data]
23 août 13:43:52 XPS-Manjaro sqlservr [9130]: [71B blob data]
23 août 13:43:52 XPS-Manjaro sqlservr [9130]: [124B blob data]
23 août 13:49:03 XPS-Manjaro sqlservr [9130]: [156B blob data]
23 août 13:49:03 XPS-Manjaro sqlservr [9130]: [194B blob data]
23 août 13:52:31 XPS-Manjaro sqlservr [9130]: [74B blob data]
23 août 13:52:31 XPS-Manjaro sqlservr [9130]: [199B blob data]

J'essaie maintenant de créer une connexion locale à mon serveur via SQLectron sur l'écran suivant:

entrez la description de l'image ici

Comme j'ai très peu d'expérience avec les serveurs SQL, je suis complètement perdu avec où obtenir toutes ces informations d'identification pour se connecter à mon serveur local. Le seul que je connaisse est le mot de passe que j'ai défini dans la sudo /opt/mssql/bin/mssql-conf setupcommande.

Comment trouver le nom du serveur, l'adresse hôte (127.0.0.1?), Le port, le domaine, le chemin du socket Unix et le nom d'utilisateur?

KOB
la source
Je n'ai travaillé qu'avec SQL Server sur Windows, mais si certains termes pourraient aider: Nom serait le nom du serveur (et l'instance, si nécessaire); d'après ce que vous dites, addresscomme 127.0.0.1` devrait fonctionner; portaurait dû être défini lors de la configuration du serveur (la valeur par défaut est généralement 1433); userserait le nom d' utilisateur que vous voulez vous connecter (pourrait probablement être un compte utilisateur Linux, ou un compte SQL Server (comme sa), et passwordest le mot de passe pour ce compte. Databaseet Schemaserait la base de données par défaut et le schéma vous connecter, essayer masteret blanc, ou masteret dbo.
RDFozz

Réponses:

7

Si vous exécutez l'interface graphique sur la même machine que le service mssql-server, vous pouvez utiliser localhost pour l'adresse (127.0.0.1). Si vous exécutez l'interface graphique à partir d'un autre poste de travail, vous aurez besoin de l'adresse IPv4 de la machine sur laquelle le service mssql-server s'exécute. Vous pouvez l'obtenir en exécutant à ifconfigpartir d'une invite de terminal Linux. Exemple de sortie de ifconfig:

eth0: drapeaux = 4163 mtu 1500
        éther 00: 15: 5d: 89: 45: 01 txqueuelen 1000 (Ethernet)
        Paquets RX 423 octets 137827 (134,5 Ko)
        Erreurs RX 0 supprimées 0 dépassements 0 trame 0
        Paquets TX 0 octets 0 (0,0 B)
        Erreurs TX 0 abandonnées 0 dépassements 0 porteuse 0 collisions 0

eth1: drapeaux = 4163 mtu 1500
        inet 192.168.200.11 netmask 255.255.255.0 broadcast 192.168.200.255
        inet6 fe80 :: 2f70: 9d15: 8e7d: 16cb prefixlen 64 scopeid 0x20
        éther 00: 15: 5d: 89: 45: 04 txqueuelen 1000 (Ethernet)
        Paquets RX 20138 octets 2006000 (1,9 Mio)
        Erreurs RX 0 supprimées 0 dépassements 0 trame 0
        Paquets TX 19756 octets 30125657 (28,7 Mio)
        Erreurs TX 0 abandonnées 0 dépassements 0 porteuse 0 collisions 0

lo: drapeaux = 73 mtu 65536
        inet 127.0.0.1 netmask 255.0.0.0
        inet6 :: 1 prefixlen 128 scopeid 0x10
        boucle txqueuelen 1 (boucle locale)
        Paquets RX 3239 octets 361340 (352,8 Ko)
        Erreurs RX 0 supprimées 0 dépassements 0 trame 0
        Paquets TX 3239 octets 361340 (352,8 Kio)
        Erreurs TX 0 abandonnées 0 dépassements 0 porteuse 0 collisions 0

Dans la sortie ci-dessus, le bit qui est important est l'adresse "inet", qui dans mon cas est 192.168.200.11.

Le port par défaut pour SQL Server est 1433 - sauf si vous avez choisi un port différent dans mssql-conf, utilisez ce numéro de port. Assurez-vous que le pare-feu sur la boîte Linux autorise les connexions externes via 1433, si vous avez l'intention de vous connecter à SQL Server via le réseau.

Utilisez sacomme identifiant et mot de passe que vous avez spécifié lors de l'installation de SQL Server via la sudo /opt/mssql/bin/mssql-conf setupcommande.

Je laisserais le chemin de domaine et de socket unix vide.

Une fois que vous vous êtes connecté à l'instance, vous souhaiterez peut-être configurer un compte non sa. Faites cela avec la CREATE LOGINdéclaration .

Juste pour info, vous pouvez utiliser SQL Server Management Studio pour vous connecter à SQL Server sur Linux, si tel est votre désir.

Max Vernon
la source
En ce qui concerne votre info, comment puis-je obtenir l'interface graphique SSMS sous Linux? J'ai installé les deux mssql-serveret mssql-tools- ni l'un ni l'autre qui semblent avoir une sorte d'application GUI ou quoi que ce soit installé en ce qui concerne SSMS. Comme je connais bien SSMS, je préférerais continuer à l'utiliser, mais je ne pensais pas qu'il était disponible sur Linux.
KOB
oh, non, je voulais dire que vous pouviez exécuter SSMS sur un poste de travail Windows et le connecter à SQL Server sous Linux.
Max Vernon
Oh ok, je le pensais. Non, je ne fais qu'expérimenter et je voudrais juste que tout fonctionne depuis ma machine Linux.
KOB
Une dernière suite: si je voulais maintenant accéder à ma base de données à partir d'un script Python, aurais-je juste besoin de configurer mon compte non-sa comme vous l'avez mentionné, puis d'installer un pilote? J'ai utilisé le pilote ODBC lorsque je travaillais sur Windows. Dans mon script Pyton sur Windows, j'ai obtenu mon nom de serveur pour le moteur de connexion de SSMS qui était sous la forme de CPX-9GL9XXXXXXX\SQLEXPRESS. Comment puis-je trouver ce nom de serveur équivalent sans avoir accès à SSMS?
KOB
Le navigateur SQL Server est utilisé pour localiser les instances SQL Server sans connaître le numéro de port à l'avance ... donc pour CPX-9GL9XXXXXXX\SQLEXPRESS-> SQLEXPRESSest le nom de l'instance , qui serait traduit par le service SQL Server Browser en un numéro de port. Malheureusement, le navigateur SQL Server n'est pas encore pris en charge sous Linux , vous devez donc connaître le numéro de port, qui est 1433 par défaut.
Max Vernon