Conectando-se a um MS SQL Server local a partir de um cliente GUI

11

Eu sou muito novo em servidores SQL e de banco de dados. Recentemente, tenho usado o SQL Server Express e acessado meu banco de dados usando o SQL Server Management Studio no Windows. Agora estou tentando obter uma configuração semelhante em uma máquina Linux.

Gostaria de criar uma instância local do SQL Server na máquina e, em seguida, usar o SQLectron como um cliente GUI para consultar meu banco de dados. Estou usando o Manjaro Linux e, portanto, instale meus pacotes no AUR.

Até agora eu instalei mssql-server, mssql-toolse sqlectron-gui. Eu executei o sudo /opt/mssql/bin/mssql-conf setupcomando para (acredito) configurar um servidor local. Depois de fazer isso, a execução do comando systemctl status mssql-serverretorna isso:

[kev @ XPS-Manjaro ~] $ systemctl status mssql-server
● mssql-server.service - Mecanismo de banco de dados do Microsoft SQL Server
Carregado: carregado (/usr/lib/systemd/system/mssql-server.service; ativado; predefinição de fornecedor: desativado)
Ativo: ativo (em execução) desde qua 2017-08-23 13:43:49 IST; 2h 42min atrás
    Documentos: https://docs.microsoft.com/en-us/sql/linux
PID principal: 9130 (sqlservr)
    Tarefas: 165
CGroup: /system.slice/mssql-server.service
        91─9130 / opt / mssql / bin / sqlservr
        9─9144 / opt / mssql / bin / sqlservr

23 de agosto 13:43:52 XPS-Manjaro sqlservr [9130]: [dados do blob 145B]
23 de agosto 13:43:52 XPS-Manjaro sqlservr [9130]: [dados do blob 66B]
23 de agosto 13:43:52 XPS-Manjaro sqlservr [9130]: [dados do blob 96B]
23 de agosto 13:43:52 XPS-Manjaro sqlservr [9130]: [dados do blob 100B]
23 de agosto 13:43:52 XPS-Manjaro sqlservr [9130]: [dados do blob 71B]
23 de agosto 13:43:52 XPS-Manjaro sqlservr [9130]: [dados do blob 124B]
23 de agosto 13:49:03 XPS-Manjaro sqlservr [9130]: [156B dados do blob]
23 de agosto 13:49:03 XPS-Manjaro sqlservr [9130]: [dados do blob 194B]
23 de agosto 13:52:31 XPS-Manjaro sqlservr [9130]: [dados do blob 74B]
23 de agosto 13:52:31 XPS-Manjaro sqlservr [9130]: [dados do blob 199B]

Agora estou tentando criar uma conexão local para o meu servidor através do SQLectron na tela a seguir:

insira a descrição da imagem aqui

Como tenho muito pouca experiência com servidores SQL, estou completamente perdido com a forma de obter todas essas credenciais para conectar-se ao meu servidor local. A única que conheço é a senha que defini no sudo /opt/mssql/bin/mssql-conf setupcomando.

Como localizo o nome do servidor, endereço do host (127.0.0.1?), Porta, domínio, caminho do soquete Unix e nome de usuário?

KOB
fonte
Eu trabalhei apenas com o SQL Server no Windows, mas se alguns termos ajudarem: Nome seria o nome do servidor (e a instância, se necessário); pelo que você diz, addresscomo 127.0.0.1` deve funcionar; portdeveria ter sido definido quando você configurou o servidor (o padrão geralmente é 1433); userseria o nome de usuário no qual você deseja fazer login (provavelmente pode ser uma conta de usuário Linux ou uma conta do SQL Server (como sa) e passwordé a senha dessa conta. Databasee Schemaseria o banco de dados e o esquema padrão aos quais você se conectaria; tente mastere em branco, ou mastere dbo.
RDFozz

Respostas:

7

Se você estiver executando a GUI na mesma máquina que o serviço mssql-server, poderá usar o host local para o endereço (127.0.0.1). Se você estiver executando a GUI de uma estação de trabalho diferente, precisará do endereço IPv4 da máquina em que o serviço mssql-server está sendo executado. Você pode obter isso executando ifconfigum prompt de terminal do Linux. Saída de amostra de ifconfig:

eth0: flags = 4163 mtu 1500
        éter 00: 15: 5d: 89: 45: 01 txqueuelen 1000 (Ethernet)
        Pacotes RX 423 bytes 137827 (134,5 KiB)
        Erros RX 0 eliminados 0 excedem 0 quadros 0
        Pacotes TX 0 bytes 0 (0,0 B)
        Erros de TX 0 eliminados 0 excedentes 0 transportadora 0 colisões 0

eth1: flags = 4163 mtu 1500
        inet 192.168.200.11 máscara de rede 255.255.255.0 broadcast 192.168.200.255
        inet6 fe80 :: 2f70: 9d15: 8e7d: 16cb prefixo 64 escopo 0x20
        éter 00: 15: 5d: 89: 45: 04 txqueuelen 1000 (Ethernet)
        Pacotes RX 20138 bytes 2006000 (1,9 MiB)
        Erros RX 0 eliminados 0 excedem 0 quadros 0
        Pacotes TX 19756 bytes 30125657 (28,7 MiB)
        Erros de TX 0 eliminados 0 excedentes 0 transportadora 0 colisões 0

lo: flags = 73 mtu 65536
        inet 127.0.0.1 máscara de rede 255.0.0.0
        inet6 :: 1 prefixo 128 escopo 0x10
        loop txqueuelen 1 (loopback local)
        Pacotes RX 3239 bytes 361340 (352,8 KiB)
        Erros RX 0 eliminados 0 excedem 0 quadros 0
        Pacotes TX 3239 bytes 361340 (352,8 KiB)
        Erros de TX 0 eliminados 0 excedentes 0 transportadora 0 colisões 0

Na saída acima, o bit que é importante é o endereço "inet", que no meu caso é 192.168.200.11.

A porta padrão do SQL Server é 1433 - a menos que você escolha uma porta diferente no mssql-conf, use esse número de porta. Verifique se o firewall na caixa Linux está permitindo conexões externas via 1433, se você deseja se conectar ao SQL Server pela rede.

Use sacomo logon e a senha especificada durante a instalação do SQL Server através do sudo /opt/mssql/bin/mssql-conf setupcomando

Eu deixaria o domínio e o caminho do soquete unix em branco.

Depois de conectar-se à instância, convém configurar uma conta que não seja sa. Faça isso com a CREATE LOGINdeclaração .

Apenas um FYI, você pode usar o SQL Server Management Studio para se conectar ao SQL Server no Linux, se esse for o seu desejo.

Max Vernon
fonte
Com relação ao seu FYI, como posso obter a GUI do SSMS no Linux? Eu instalei os dois mssql-servere mssql-tools- nem os quais parecem ter qualquer tipo de aplicativo GUI ou qualquer coisa instalada com relação ao SSMS. Como eu estou mais familiarizado com o SSMS, prefiro continuar usando-o, mas não acho que ele esteja disponível no Linux.
KOB
ah, não, eu quis dizer que você poderia executar o SSMS em uma estação de trabalho Windows e conectá-lo ao SQL Server no Linux.
Max Vernon
Oh ok, eu pensei que sim. Não, estou apenas experimentando e gostaria de ter tudo funcionando da minha máquina Linux.
KOB
Um último seguimento: se agora eu quisesse acessar meu banco de dados a partir de um script Python, precisaria apenas configurar minha conta não-sa conforme você mencionou e instalar algum driver? Eu usei o driver ODBC ao trabalhar no Windows. No meu script Pyton no Windows, obtive o nome do servidor para o mecanismo de conexão do SSMS, que estava na forma de CPX-9GL9XXXXXXX\SQLEXPRESS. Como posso encontrar esse nome de servidor equivalente sem ter acesso ao SSMS?
KOB
O Navegador do SQL Server é usado para localizar instâncias do SQL Server sem saber o número da porta com antecedência ... portanto, para CPX-9GL9XXXXXXX\SQLEXPRESS-> SQLEXPRESSé o nome da instância , que seria convertido pelo serviço Navegador do SQL Server em um número de porta. Infelizmente, o SQL Server Browser ainda não é suportado no Linux , portanto, você precisa saber o número da porta, que é 1433 por padrão.
Max