quarta-feira, agosto 30, 2006

SQL Server 2005 Express: Permitindo conexões remotas

O SQL Server 2005 Express vem, por default, desabilitado para conexões remotas, como se tornou padrão nos aplicativos da Microsoft. Para habilitar conexões remotas é preciso seguir os seguintes passos:

PASSO 1: Habilitar o TCP/IP

A primeira ação a ser tomada é permitir que o SQL Server 2005 Express possa escutar o protocolo TCP/IP:
  1. Execute o SQL Server Configuration Manager, o "Microsoft SQL Server 2005 CTP" no menu Program
  2. Clique no node "Protocols for SQLEXPRESS"
  3. Clique com o botão da direita em "TCP/IP" na lista de Protocolos e escolha, "Enable"

PASSO 2: Browser?

Em seguida, deve-se determinar se há interesse em deixar o serviço SQL Browser rodando. A vantagem de tê-lo rodando é que os usuários conectando remotamente não terão de especificar a porta na string de conexão. Repare que, para fins de segurança, recomenda-se que NÃO se ative o serviço SQL Browser, pois reduz da superfície de ataque envitando a necessidade de ouvir a porta UDP.

Opção A: Sempre especificando uma porta TCP quando for conectar (não usando o serviço SQL Browser):
  1. Execute o SQL Server Configuration Manager, o "Microsoft SQL Server 2005 CTP" no menu Program
  2. Clique no node "Protocols for SQLEXPRESS"
  3. Clique no nó filho "TCP/IP"
  4. Aparecerá uma entrada no panel à direita para "IPAll", clique com o botão da direita nele e selecione, "Properties"
  5. Apague o valor em "TCP Dynamic Ports"
  6. Informe um número TcpPort para ser usando pelas conexões remotas, por exemplo, "1433" que é a porta default.
Será necessário reiniciar o SQL Server Express service. Em seguida, será possível conectar-se remotamente. Uma forma de se checar a conectividade é usando o SQLCMD da máuina remota:

SQLCMD -E -S YourServer\SQLEXPRESS,1433

A "," indica a porta do servidor.

Um exemplo de string de conexão seria:

"Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=pubs;User ID=sa;Password=asdasd;"


Opção B: Usando o serviço SQL Browser:

Se a versão usada for April CTP ou anterior, será necessário mudar para "1" a seguinte chave no registry para permitir que o serviço SQL Browser escute a porta 1434:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\SQL Browser\Ssrplistener

Em seguinda, reinicie o serviço SQL Browser.


PASSO 3: Firewall?

Se ainda não foi possível conectar-se remotamente, possivelmente há um firewall ativado. As instruções são para a configuração do firewall no Windows XP SP2:
  1. Excute a ferramenta de confuguração do Windows Firewall no painel de controle ou Star - Run - firewall.cpl
  2. Clique na Tab Exceptions
  3. Clique no botão "Add Programs" e selecione "sqlservr.exe" informando a localização exata de instalação do SQL Server Express. Normalmente em "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe"

Pode-se ser mais restritivo especificando o número da porta permitida para conexão, usada quando configurada pela Opção A.

Se a escolha foi por ativa o serviço SQL Browser, será necessário adicionar o serviço SQLBrowser à lista de exceções para ouvir a porta UDP 1434.

Mais em: http://support.microsoft.com/default.aspx?scid=kb;en-us;914277

quinta-feira, agosto 10, 2006

PIA

Quem se acostumou a desenvolver aplicações que interagem com o MS Office precisaram se acostumar com as novas terminologias que, salvo engano, começaram no Office 2000. Certo é que o 2003 o emprega e o .Net permite interoperabilidade. Para evitar buscas frustadas, eis alguns links para o que chama-se Office Primary Interop Assemblies, cujo acrônimo é PIA.

Office 2003 Update: Redistributable Primary Interop Assemblies (Download)

Primary Interop Assemblies (PIAs) and Interop Assemblies (IAs) [Office 2003 SDK Documentation]

Office XP PIAs