Ao instalar o SQL Server, para que seja possível utilizá-lo em rede, você vai precisar ativar os serviços referentes a conexão e depois liberar as portas corretas do firewall.
Primeiro instale a versão do SQL Server, caso não tenha ainda. Sugerimos utilizar a versão Express, que é gratuita e atende a maioria das necessidades das microempresas. Estas instruções de configuração são para o contexto do Windows 7 ou Server 2012 ou mais recentes. Recomendamos como requisito mínimo o Windows 11 ou Server 2016. Pode ser necessário adaptar comandos ou instruções para sua versão específica.
Para ativar os serviços utilize o utilitário “Sql Server Configuration Manager” e revise se os protocolos que você deseja utilizar estão ativos. Geralmente é necessário apenas ativar com início automático o Sql Server Express e o Sql Browser. Ative o serviço de conexão TCP nestas configurações.
Em seguida, você só precisa abrir as regras do firewall do windows – em Firewall do Windows com Segurança Avançada – e criar estas três regras de permissão de entrada, liberando acesso:
- Para o programa sqlserv.exe que está em Arquivos de Programas, em uma subpasta do SQL (varia conforme a versão)
- SQL Server 2014 Express: C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Binn.
- SQL Server 2022 Express: C:\Program Files\Microsoft SQL Server\MSSQL16.SQLEXPRESS\MSSQL\Binn
- SQL Server 2022 Standard: C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Binn
- Para a porta TCP 1433
- Para a porta UDP 1434
Válido para os Windows à partir do Vista, inclusive Server. Para mais informações, verifique a ajuda da Microsoft.
Observação: talvez seu micro tenha outros programas de firewall, como o que vem com alguns programas de antivírus ou internet protection, neste caso você deverá consultar a documentação do seu firewall para fazer as liberações do programa e das portas.
Downloads do Sql Server:
Script para facilitar
Para simplificar, você pode apenas abrir um prompt de comando em modo admin no seu Windows e executar o código abaixo. Para conveniência você pode também pode salvar em um arquivo de comandos “.bat”.
Este código está ajustado para o Sql Server 2022 standard.
@echo off rem apaga e recria a regra TCP 1433 restrito à rede local netsh advfirewall firewall delete rule name="SQL SERVER TCP 1433" netsh advfirewall firewall add rule name="SQL SERVER TCP 1433" dir=in protocol=tcp action=allow localport=1433 remoteip=localsubnet profile=any rem apaga e recria a regra UDP 1434 restrito à rede local netsh advfirewall firewall delete rule name="SQL SERVER UDP 1434" netsh advfirewall firewall add rule name="SQL SERVER UDP 1434" dir=in protocol=udp action=allow localport=1434 remoteip=localsubnet profile=any rem apaga e recria a regra sqlserv.exe restrito à rede local netsh advfirewall firewall delete rule name="SQL SERVER sqlserv.exe" rem ******** Abaixo Remova o comentário REM da linha correspondente à sua versão ******** rem -- SQL server 2014 express rem netsh advfirewall firewall add rule name="SQL SERVER sqlserv.exe" dir=in protocol=any action=allow program="C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Binn\sqlserv.exe" remoteip=localsubnet profile=any rem -- SQL server 2016 express rem netsh advfirewall firewall add rule name="SQL SERVER sqlserv.exe" dir=in protocol=any action=allow program="C:\Program Files\Microsoft SQL Server\MSSQL16.SQLEXPRESS\MSSQL\Binn\sqlserv.exe" remoteip=localsubnet profile=any rem -- SQL server 2022 express rem netsh advfirewall firewall add rule name="SQL SERVER sqlserv.exe" dir=in protocol=any action=allow program="C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Binn\sqlserv.exe" remoteip=localsubnet profile=any
Consultas SQL úteis para diagnóstico
Abaixo instruções sql para facilitar diagnósticos e configurações de manutenção.
– Listar o espaço ocupado pelas tabelas do banco de dados
Referência original em AGO-2020.
SELECT t.NAME AS TableName, s.Name AS SchemaName, p.rows, SUM(a.total_pages) * 8 AS TotalSpaceKB, CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB, SUM(a.used_pages) * 8 AS UsedSpaceKB, CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB, (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB, CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB FROM sys.tables t INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id LEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.NAME NOT LIKE 'dt%' AND t.is_ms_shipped = 0 AND i.OBJECT_ID > 255 GROUP BY t.Name, s.Name, p.Rows ORDER BY TotalSpaceMB DESC, t.Name
Ou utilize uma a uma
exec sp_spaceused [nome da tabela]