Quando você instala o SQL Express, os protocolos de rede são desabilitados por padrão, isto faz com que ele não aceite conexões vindas de outras estações de uma rede. Sendo assim, descrevo também como configurar o SQL Express para permitir a comunicação entre ele e suas aplicações.

O SQL Server 2005 Express Edition (SQL Express) - sucessor do MSDE, é baseado nas tecnologias do SQL Server 2005 e suporta muita das características de banco de dados deste e versões anteriores do SQL Server. Para saber mais sobre o SQL Server Express utilizando o Inno Setup.

Instalação Side-by-Side com o SQL Server

Se você pretende instalar o SQL Express em um computador que já tenha o SQL Server 2000 ou MSDE instalado, garanta que o SQL Server 2000 ou MSDE esteja atualizado com o SP3 ou superior. Versões anteriores ao SP3 não compartilham apropriadamente a porta UDP 1434 e pode fazer com que sua instância do SQL Express não esteja disponível para as aplicações clientes.

Embora você possa alterar a ordem de inicialização dos serviços para que o serviço SQL Browse inicie antes do SQL Server 2000 ou MSDE, o recomendado é que você atualize todas as versões do SQL Server 2000 ou MSDE para o SP3 ou superior. Para fazer download do Service Pack mais recente, veja as versões mais atuais no Microsoft SQL Server.

Relacionado: Curso de SQL Server

O Serviço SQL Browser

O serviço SQL Browser (sqlbrowser) permite que aplicações clientes se conectem a uma instância do SQL Server 2005 ou SQL Server 2005 Express Edition sem conhecer a porta TCP/IP atribuída para a instância.

Nota: Por razões de securança, o SQL Express não inicia automaticamente o serviço SQL Browser durante a instalação.

Como o Serviço SQL Browser trabalha

Quando uma instância do SQL Express é iniciada, ela é atribuída a um número de porta TCP/IP. Esta porta será usada pela instância para se comunicar ou trocar dados com as aplicações clientes. Devido este número de porta ser geralmente desconhecido para as aplicações, o serviço SQL Browser atua como um tradutor, traduzindo o nome de instância passado pela aplicação, para o número de porta TCP/IP apropriada. Para fazer isso, o serviço SQL Browser fica escutando por requisições de rede nas portas TCP/IP 1433 e 1434.

Por default, o serviço SQL Browser está desativado. Se você esta acessando um cópia local do SQL Express, você não necessitará iniciar este serviço. Entretanto, se você precisa que sua aplicação acesse o SQL Express através da rede, você deverá primeiro habilitar um dos protocolos de rede e então iniciar o serviço SQL Browse. Posteriormente veremos como configurar o SQL Express para trabalhar em uma rede.

Requisitos Necessários

Antes de iniciar a instalação do SQL Server Express é importante observar que para instalar e funcionar adequadamente alguns requisitos são necessários como:

  • Processador: Pentium III ou compatível 500Mhz, recomendado 1Ghz;
  • Sistema Operacional: Windows Server 2003 SP1, Windows Server 2003 Enterprise Edition SP1, Windows Server 2003 Datacenter Edition SP1, Windows Small Business Server 2003 Standard Edition SP1, Windows Small Business Server 2003 Premium Edition SP1, Windows XP Professional SP2, Windows XP Home Edition SP2, Windows XP Tablet Edition SP2, Windows XP Media Edition SP2, Windows 2000 Professional Edition SP4, Windows 2000 Server Edition SP4, Windows 2000 Advanced Edition SP4, Windows 2000 Datacenter Server Edition SP4;
  • Memória RAM: Mínimo de 192MB, recomendado 512MB ou superior
  • Espaço em disco: 600MB livres
  • Microsoft .NET Framework 2.0 (2.0.50727.42)
  • Windows Installer 3.1
  • Microsoft Internet Explorer 6.0 SP1 ou superior

Nota: O Microsoft .NET Framework 2.0 e o Windows Installer 3.1 não são instalados juntos com o SQL Express. Sendo assim, certifique-se de estar com o .NET Framework 2.0 e Windows Installer 3.1 instalados antes de iniciar a instalação do SQL Express.

Desinstalando um Relase Anterior do SQL Express e Visual Studio 2005

Caso você pretenda instalar a versão final do SQL Express na mesma máquina onde já tenha instalado um release Beta ou CTP do SQL Server Express ou Visual Studio 2005, você deverá remover os releases anteriores do SQL Express, Visual Studio 2005 e .NET Framework 2.0 antes da instalação. Como estes produtos dependem da mesma versão do .NET Framework, eles devem ser desinstalados na seguinte ordem:

  • SQL Server 2005 Express
  • Visual Studio 2005
  • .NET Framework 2.0

IMPORTANTE: Qualquer dúvida sobre o processo de desintalação, veja uninstall any previous versions.

Relacionado: Curso de SQL

Instalando o SQL Server Express

  1. Para iniciar o processo de instalação do SQL Express, efetue duplo-clique sobre o arquivo SQLEXPR.EXE. Nota: Se preferir, é possível extrair os arquivos de instalação para um diretório temporário utilizando a sintaxe SQLEXPR.EXE /X via linha de comando.
  2. Na janela End User License Agreement, leia a licença de uso e selecione o check box I accept the licensing terms and conditions. Clique em Next para prosseguir.
  3. O SQL Server Component Update é executado e instala os requisitos necessários para a instalação do SQL Express como o Microsoft SQL Native Client e Microsoft SQL Server 2005 Setup Support Files.
  4. Na janela Welcome to the Microsoft SQL Server Installation Wizard clique em Next para prosseguir.
  5. No próximo passo o SQL Express apresenta a janela System Configuration Check (SCC). Da mesma forma como no SQL Server 2005, o SQL Express faz uma verificação em busca de possíveis problemas (requisitos mínimos de hardware e software) que possam impedir a instalação do SQL Express. Caso algum problema seja encontrado você terá a opção de visualizar o relatório sobre o problema encontrado e possível solução.
  6. Instalação do SQL Express
    System Configuration Check (SCC).
  7. Na janela Registration Information entre com as informações solicitadas e clique em Next. Algumas observações importantes devem ser feitas aqui:
    • a) Devido ao SQL Express ser um produto gratuito, não existe solicitação para o Product Key.
    • b) Se você selecionar a opção Hide advanced configuration options, a janela Service Account - a qual permite definir qual conta de usuário será usada para iniciar os servidor do SQL Express e a janela Collation Settings - o qual permite informar qual Collation e Code Page o SQL Express deverá utilizar, não serão apresentadas. Neste caso o SQL Server Express será instalado com sua configuração padrão.
    • Service Account
      Service Account
  8. Na janela Feature selection, selecione os componentes que deseja instalar e clique em Next para prosseguir.
  9. Feature selection
    Feature selection
  10. A janela Instance Name (não será apresentada se você selecionar a opção Hide advanced configuration options) permite que você selecione uma Default instance ou Named instance para sua instalação. Uma instância pode ser Default Instance (não nomeada) ou Named Instance (nomeada). Quando o SQL Server 2005 é instalado como Default Instance ele não requer que o cliente especifique o nome da instância para fazer a conexão. O cliente necessita conhecer apenas o nome do servidor SQL ao qual deseja se conectar.

    Uma Named Instance é identificada pelo nome do servidor mais o nome da instância que você especificou durante a instalação. O cliente necessita conhecer o nome do servidor e o nome da instância para se conectar.

    Por default, o SQL Server é instalado como Default Instance (não nomeada) a menos que você especifique um nome de instância durante a instalação. Ao contrário do SQL Server, o SQL Server Express é por default instalado como Named Instance, tendo como nome padrão para a instância o nome “SQLExpress”. Se você não informar um nome para a instância durante a instalação ou não desmarcar a opção Hide Advanced configuration options, o nome padrão será usado. Neste caso, você deverá acessar o SQL Express como computername/SQLExpress (a barra utilizada aqui deve ser a mesma utilizada na separação de diretórios).

    Você também pode instalar o SQL Express como Default Instance (não nomeada) - permitindo que apenas o nome do servidor seja informado durante a conexão se nenhuma outra versão do SQL Server já estiver instalada no servidor como default instance. Para fazer isto, instale o SQL Express como named instance usando como nome para a instância o nome MSSQLSERVER.

    Janela Instance Name
    Janela Instance Name

    Nota: Para que o SQL Express permita informar um nome diferente para a instância, desmarque a opção Hide Advanced configuration options na janela Registration Information no início da instalação.

  11. A janela Service Account (não será apresentada se você selecionar a opção Hide advanced configuration options) permite que se atribua a conta local system (local system account) ou uma conta de usuário de domínio (domain user account) para iniciar os serviços SQL Server Express.

    Por default o SQL Server Express é instalado tendo a conta de sistema Network Service como conta para a inicialização dos serviços. Entretando, a recomendação é que se use uma conta de domínio ou então crie-se uma conta local específica para a inicialização dos serviços.

    A janela Service Account
    A janela Service Account
  12. Na janela Authentication Mode especifique o modo de segurança que deverá ser utilizado para se conectar ao SQL Express e clique em Next.
  13. Na janela Collations Settings selecione o Collation designator e o sort order desejado e clique em Next para continuar.

    Janela Collations Settings
    Janela Collations Settings

    Nota: Por padrão o SQL Express é instalado como case-insensitive, accent-sensitive. Ou seja, não faz restrição a maiúsculas e minúsculas, mas faz restrição a acentuação. Com isso, durante uma pesquisa, "João" e "joão" são a mesma coisa mas "João" e "Joao" ou "joão" e "joao" NÃO são. Para evitar futuros problemas com acentuação ou caracteres maiúsculos e minúsculos, recomendo que você selecione o Collate conforme tela acima. A não ser é claro, que você precise manter a compatibilidde de collate com outos servidores. Neste caso, selecione seu collate conforme o collate das versões anteriores.

  14. Na janela Error Reporting, selecione se você deseja reportar erros para o SQL Express e seus componentes à Microsoft. Esta opção é habilitada por padrão.
  15. Na janela Ready to Install , clique em Install para iniciar o processo de instalação do SQL Express.

Assim como no SQL Server 2005 a janela Setup Progress permite acompanhar o processo de instalação de cada componente.

Janela Setup Progress
janela Setup Progress

Instalando o SQL Server Express via linha de comando

Para aqueles que estão acostumados a instalar o MSDE 2000 via linha de comando, verão que instalar o SQL Server Express via linha de comando é tão simples quanto instalar o MSDE. Inclusive, a sintaxe e os parâmetros de instalação são bem semelhantes.

Antes de iniciar o processo de instalação do SQL Express via linha de comando, é preciso extrair os arquivos de instalação para um caminho temporário. Para extrair os arquivos de instalação, execute o pacote do SQL Express com a opção /X e informe o caminho onde os aquivos deverão ser extraídos.

Exemplo: C:/SQLEXPR.EXE /X

Depois de extraído os arquivos, a instalação do SQL Express via linha de comando pode ser realizada de duas formas bastante simples:

  1. Chamando o setup.exe e especificando os parâmetros desejados na própria linha de comando. Exemplo:

    start /wait setup.exe /qb ADDLOCAL=ALL INSTANCENAME=SQLEXPRESS SECURITYMODE=SQL SAPWD=pass SQLCOLLATION="SQL_Latin1_General_CP1_CI_AI" SQLAUTOSTART=1 DISABLENETWORKPROTOCOLS=0
  2. Criando um arquivo de configuração e especificando o mesmo na linha de comando.

    Caso você não queira executar o setup especificando os parâmetros, uma alternativa é executá-lo informando um arquivo .ini, o qual deverá conter todos os parâmetros a serem utilizados durante a instalação.

    O arquivo .ini é um arquivo texto que pode ser criado usando o NotePad e deve ser salvo com a extensão .ini. A primeira linha do arquivo deve ser [Options], depois se devem especificar os parâmetros sendo um em cada linha. Depois de criado o arquivo .ini, execute o setup usando a opção /settings para informar o arquivo .ini

    O exemplo abaixo utiliza o arquivo setup.ini para executar o setup.exe e informar os parâmetros desejados. Exemplo:

    start /wait setup.exe /qb SAPWD=pass /settings setup.ini
    -- conteúdo do arquivo setup.ini
        [Options]
        ADDLOCAL=ALL 
        INSTANCENAME=SQLEXPRESS
        SECURITYMODE=SQL 
        SQLCOLLATION="SQL_Latin1_General_CP1_CI_AI"
        SQLAUTOSTART=1 
        DISABLENETWORKPROTOCOLS=0

    Nos exemplos acima, o parâmetro ADDLOCAL=ALL informa ao setup do SQL Express que devem ser instalados todos os seus componentes. INSTANCENAME indica o nome da instância, SECURITYMODE indica que o modo de autenticação a ser utilizado é o SQL Authentication, SQLCOLLATION informa o collation default a ser utilizado pelo SQL Express, SQLAUTOSTART informa ao setup para configurar o serviço do SQL Express para inicialização automática, SAPWD informa a senha para o usuário sa e o parâmetro DISABLENETWORKPROTOCOLS indica quais os protocolos deverão estar habilitados.

    É importante ficar atento ao valor informado no parâmetro DISABLENETWORKPROTOCOLS, o qual por default é 1. O valor 1 informa ao SQL Express para desativar os protocolos TCP/IP e Named Pipes. Como conseqüência o SQL Express não aceitará conexões vindas de outras máquinas da rede. Os possíveis valores para o parâmetro podem ser.

    DISABLENETWORKPROTOCOLS = 0; Shared Memory= On, Named Pipe= On, TCP= On  
        DISABLENETWORKPROTOCOLS = 1; Shared Memory= On, Named Pipe= Off (Local Only),TCP= Off
        DISABLENETWORKPROTOCOLS = 2; Shared Memory= On, Named Pipe= Off (Local Only), TCP= On

    Ao utilizar um dos dois métodos de instalação apresentados acima, as contas de serviço SQL Server Express e SQL Server Browser serão iniciadas com o usuário de sistema NT AUTHORITYNetworkService. Para especificar uma conta de serviço diferente, acrescente os parâmetros abaixo:

    SQLACCOUNT=
        SQLPASSWORD=
        SQLBROWSERACCOUNT= 
        SQLBROWSERPASSWORD=

    Para obter uma lista completa de todos os parâmetros que podem ser utilizados na instalação via linha de comando e seus respectivos significados, após extrair os arquivos do SQL Express para um caminho temporário, leia o arquivo template.ini.

Configurando o SQL Express para a Rede

Se você esta desenvolvendo ou possui uma aplicação que irá se conectar a uma instância do SQL Express através da rede, existe várias considerações que você deve estar ciente:

  1. Por razões de segurança, os protocolos de rede são desabilitados por padrão. Você pode habilitar os protocolos individualmente durante a instalação (quando instalando o SQL Express via linha de comando) ou após a instalação.
  2. O SQL Express é instalado como named instance por padrão.
  3. O serviço SQL Browser é usado por alguns protocolos de rede para associar instâncias nomeadas com números de portas TCP/IP. Entretanto, se o SQL Express é instalado no mesmo computador que uma versão anterior ao SP3 do MSDE ou SQL Server 2000, pode ocorrer alguns conflitos.

Quando você instala o SQL Express, os protocolos de rede são desabilitados por padrão. Isto faz com que após a instalação o SQL Express não aceite conexões vindas de outras estações de uma rede. Apenas a conexão local (na própria máquina onde o SQL Express foi instalado) é permitida. Para permitir que o SQL Express se comunique com suas aplicações através de uma rede, você deve primeiro habilitar um dos protocolos de rede e então iniciar o serviço SQL Browser.

O SQL Express suporta os seguintes protocolos de rede:

Protocolo de rede Descrição Padrão
Shared Memory Permite conectar a uma instância do SQL Express rodando no mesmo computador. Não pode ser usado para acesso de outras estações da rede. Habilitado
TCP/IP Permite que outras estações se conectem ao SQL Express por especificar o nome do servidor e o nome da instância (default SQLExpress) ou o endereço IP e o nome da instância. Desabilitado
Named Pipes Permite que outras estações se conectem ao SQL Express por suportar vários protocolos de rede, incluindo NetBEUI, TCP/IP e IPX/SPX. Ele seleciona o protocolo de rede automaticamente baseado na configuração do cliente. Desabilitado

Habilitando os protocolos de Rede

Demonstrarei aqui como habilitar e configurar o protocolo TCP/IP no SQL Express usando o utilitário SQL Server Configuration Manager.

Nota: Você deverá reiniciar o serviço do SQL Express após fazer alterações para os protocolos de rede. Também é recomendado a reinicialização do serviço SQL Browser.

Para habilitar o protocolo TCP/IP siga os passos abaixo:

  1. No menu Iniciar (Start), selecione Programas, Microsoft SQL Server 2005 e então clique sobre SQL Server Configuration Manager.
  2. Expanda SQL Server 2005 Network Configuration e clique sobre Protocols for InstanceName. No painel da direita, clique com o botão direito sobre o protocolo TCP/IP e selecione Enable.

    SQL Server Configuration Manager
    SQL Server Configuration Manager.

Para configurar o protocolo TCP/IP:

  1. No SQL Server Configutation Manager, clique com o botão direito sobre TCP/IP e selecione Properties (Propriedades).
  2. Na guia IP Addresses, para IPAll coloque 1433 em TCP Port.
  3. Clique em OK para fechar a janela e salvar as alterações.

    TCP/IP Properties
    TCP/IP Properties.

    Nota: O procedimento acima configurou a porta 1433 para todos os IP configurados em sua máquina. Caso você deseje configurar uma porta apenas para um IP específico, localize o IP desejado (IP1, IP2...) e siga o mesmo procedimento.

Iniciando o serviço SQL Browser

Para iniciar o serviço SQL Browser, estando no SQL Server Configuration Manager:

  1. Selecione SQL Server 2005 Services.
  2. No painel da direita, clique com o botão direito sobre o serviço SQL Server Browser e selecione Start (Iniciar).
  3. Para fazer com que o serviço seja iniciado automaticamente, clique com o botão direito e selecione Properties (Propriedades)
  4. Na guia Services (Serviços), em Start Mode selecione Automatic (Automático)
  5. Clique em OK para fechar a janela e salvar as alterações.

Testando a Conectividade com o SQL Server Express

Uma das maneiras mais simples de testar a conectividade com o servidor SQL Express é utilizando o utilitário de linha que comando sqlcmd.exe. Este utilitário é instalado junto com o SQL Express e para testar a conectividade, abra uma janela DOS e execute o comando sqlcmd -E -S.

Caso você tenha selecione Mixed Mode como método de autenticação ao SQL Express, então também pode utilizar o comando sqlcmd -Usa -Psenha_do_sa -S.

Se o prompt de comando ficar como 1>, é sinal de que a conexão foi estabelecida com sucesso.

Além do utilitário sqlcmd.exe, também é possível testar a conectividade remota com o SQL Express utilizando o utilitário PortQry. O PortQry é um utilitário de linha de comando (também existe uma opção gráfica) que você pode utilizar na solução de problemas de conectividade com o protocolo TCP/IP. Ao ser executado ele mostrará o status da porta TCP ou UDP, seja para um computador local ou remoto. O PortQry pode ser executado sobre o Windows Server 2003/XP e 2000.

Quando executado sobre a porta UDP 1434, o PortQry consulta todas as instâncias do SQL Server que estão rodando no computador.

Para testar a conectividade utilizando o PortQry, supondo que o utilitário estreja na raiz do disco C:

  1. Abra uma janela DOS e digite C:/portqry -n NomedoServidor_ou_IP -e 1434 -p udp. Um retorno semelhante ao abaixo garante que a porta está funcionando corretamente:

    Querying target system called:
    
        winxptmp
    
        Attempting to resolve name to IP address...
        Name resolved to 128.1.81.62
        querying...
        UDP port 1434 (ms-sql-m service): LISTENING or FILTERED
        Sending SQL Server query to UDP port 1434...
        Server"s response:
        ServerName WINXPTMP
        InstanceName SQLEXPRESS
        IsClustered No
        Version 9.00.852
        tcp 1433
    
        ==== End of SQL Server query response ====
        UDP port 1434 is LISTENING
  2. Para testar a conectividade com a porta TPC/IP 1433 digite C:/portqry -n NomedoServidor_ou_IP -e 1433 -p tcp

    Um retorno semelhante ao abaixo garante que a porta está funcionando corretamente:

    Querying target system called:
         winxptmp
    
        Attempting to resolve name to IP address...
        Name resolved to 128.1.81.62
        querying...
        TCP port 1433 (ms-sql-s service): LISTENING

Bom pessoal, espero que com este artigo vocês possam ter uma visão básica do novo SQL Server 2005 Express Edition, que está chegando para substituir o velho e bom MSDE. Seguindo este artigo passo-a-passo vocês conseguirão instalar e testar o SQL Express sem nenhuma dificuldade.

E não se esqueçam, sempre que precisar utilize nossos fóruns para solucionar suas dúvidas.

Saiu da DevMedia!

  • 10 técnicas de otimização de consultas SQL:
    Neste artigo serão mostradas algumas técnicas que vão auxiliar na codificação das consultas a fim de obter o melhor tempo de resposta.
  • O que são Servlets?:
    A programação para a Web nem sempre foi a área mais forte do Java. No início, ficávamos restritos a scripts CGI e Applets.
  • Um bate papo sobre REST & RESTful:
    Você sabe o que é REST e RESTful? Será que toda aplicação deveria ser RESTful? Confira um bate papo sobre essas e outras dúvidas aqui.

Saiba mais sobre SQL ;)

  • Guia Completo de SQL:
    Neste Guia de Referência você encontrará todo o conteúdo que precisa para aprender sobre a SQL, linguagem de consulta estruturada utilizada por programadores e DBAs para a execução de consultas e comandos nos principais SGBDs do mercado.
  • Guia Completo de SQL Server:
    Este guia traz uma compilação das melhores publicações e ensina como resolver os mais diferentes problemas que tornam o dia a dia desse profissional tão desafiador.
  • Banco de Dados para Programadores:
    Todo programador deveria entender de banco de dados para ser um profissional mais completo, mas isso não é tarefa simples. Nesse guia você irá aprofundar seus conhecimentos em SQL, modelagem, e os principais SGBDs do mercado. Vamos evoluir!