<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Beyond OS &#187; SQL Server</title> <atom:link href="http://blog.beyond-os.com.br/tag/sql-server/feed/" rel="self" type="application/rss+xml" /><link>http://blog.beyond-os.com.br</link> <description>Tecnologia em ambientes empresariais, focado em Software Livre e aquilo que der na telha</description> <lastBuildDate>Wed, 13 Oct 2010 17:52:23 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.2</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Acessando SQL Server do Linux</title><link>http://blog.beyond-os.com.br/2008/04/acessando-sql-server-do-linux/</link> <comments>http://blog.beyond-os.com.br/2008/04/acessando-sql-server-do-linux/#comments</comments> <pubDate>Fri, 18 Apr 2008 05:13:46 +0000</pubDate> <dc:creator>Renê Teixeira Francisco</dc:creator> <category><![CDATA[Banco de Dados]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[ODBC]]></category> <category><![CDATA[SQL Server]]></category> <category><![CDATA[DB]]></category> <category><![CDATA[driver_odbc]]></category> <category><![CDATA[open_source]]></category> <category><![CDATA[ubuntu]]></category> <category><![CDATA[wine]]></category><guid
isPermaLink="false">http://blog.beyond-os.net/2008/04/acessando-sql-server-do-linux</guid> <description><![CDATA[]]></description> <content:encoded><![CDATA[<div
id=HOTWordsTxt name=HOTWordsTxt> <a
href="http://blog.beyond-os.com.br/wp-content/gallery/logo/unixodbc-logo-small2.png" title="" class="thickbox" rel="singlepic8" > <img
class="ngg-singlepic ngg-left" src="http://blog.beyond-os.com.br/wp-content/gallery/cache/8__100x75_unixodbc-logo-small2.png" alt="unixodbc-logo-small2.png" title="unixodbc-logo-small2.png" /> </a> <a
class="thickbox" title="Logo FreeTDS" href="wp-content/gallery/logo/freetdslogo3.png"> <a
href="http://blog.beyond-os.com.br/wp-content/gallery/logo/freetdslogo3.png" title="" class="thickbox" rel="singlepic10" > <img
class="ngg-singlepic ngg-left" src="http://blog.beyond-os.com.br/wp-content/gallery/cache/10__100x75_freetdslogo3.png" alt="freetdslogo3.png" title="freetdslogo3.png" /> </a> </a></p><p><a
title="unixODBC" href="http://www.unixodbc.com/">UnixODBC</a> é um configurador odbc open source, para ambientes &#8220;não-Windows&#8221;, que possibilita que máquinas linux se conectem em qualquer banco de dados externo que possua driver ODBC disponível. Ele atende bem às expectativa, entretanto, não recebe atualizações desde 2006, dando sinal que o projeto está um pouco abandonado. Existe outro projeto, o <a
title="iODBC" href="http://www.iodbc.org/">iODBC</a>, que está bem mais ativo e vale dar uma olhada, mas como o unixODBC me atende vou dar atenção para ele aqui nessas instruções.</p><p>Bom no meu caso quero me conectar a um banco SQL server, ai que entra o <a
title="FreeTDS" href="http://www.freetds.org">FreeTDS</a>. Este último é um driver odbc open source para se conectar à bancos SQL server ou Sybase.<span
id="more-11"></span></p><p>Vamos deixar de papo e instalar os dois. No meu caso estou usando o Ubuntu, o que torna tudo muito fácil, para instalar o unixODBC basta:</p><table
style="background-color: #dceaf9; width: 100%;" border="1" cellspacing="1" cellpadding="5" align="left"><tbody><tr><td>root@laprene:/ # apt-get install unixodbc</td></tr></tbody></table><p>Ele vai trazer as dependências e pedir as confirmações necessárias, confirme tudo e prossiga para instalação do FreeTDS:</p><table
style="background-color: #dceaf9; width: 100%;" border="1" cellspacing="1" cellpadding="5" align="left"><tbody><tr><td>root@laprene:/ # apt-get install tdsodbc</td></tr></tbody></table><p>No ubuntu o FreeTDS usa só o nome tdsodbc, mas não se preocupe é o próprio.</p><p>Caso você não utilize o Ubuntu ou qualquer distribuição Debian based não se desespere, baixe o fonte do <a
title="Fonte unixODBC" href="http://www.unixodbc.com/unixODBC-2.2.12.tar.gz">unixODBC</a> e do <a
title="Fonte FreeTDS" href="http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz">FreeTDS</a>, descompacte-os cada um em sua pasta e os compile com a famosa sequência de comandos:</p><table
style="background-color: #dceaf9; width: 100%;" border="1" cellspacing="1" cellpadding="5" align="left"><tbody><tr><td><table
style="background-color: #dceaf9; width: 100%;" border="0" cellspacing="0" cellpadding="5" align="left"><tbody><tr><td
width="100%">root@laprene:/ # ./configure</td></tr><tr><td>root@laprene:/ # make</td></tr><tr><td
width="100%">root@laprene:/ # make install</td></tr></tbody></table></td></tr></tbody></table><p>Na maioria das vezes isso vai funcionar, caso queira mudar algo na instalação leia  o README e o INSTALL presente na raiz do diretório onde cada um deles foi descompactado.</p><p>Após a instalação vamos para a configuração. Existem 2 formas de fazer isso: direto nos arquivos de configuração (meu preferido) ou pela interface gráfica do unixODBC.</p><p>Antes de mais nada defina uma variável de ambiente para que os sistemas que utilizarem a conexão odbc possam encontrar o caminho adequado para o driver libodbc.so.1.0.0.</p><table
style="background-color: #dceaf9; width: 100%;" border="1" cellspacing="1" cellpadding="5" align="left"><tbody><tr><td>root@laprene:/ # export LIB_ODBC_DRIVER_MANAGER=/usr/lib/libodbc.so.1.0.0</td></tr></tbody></table><table
border="0"><tbody><tr><td></td></tr></tbody></table><p><span
style="font-size: medium;"><strong>Arquivos de Configuração</strong></span></p><p>São dois arquivos de configuração: odbc.ini e odbcinst.ini .</p><table
style="background-color: #f8faa7; width: 100%;" border="1" cellspacing="0" cellpadding="5" align="left"><tbody><tr><td>odbcinst.ini</td><td>Configura o driver que vai ser utilizado no ODBC, no caso o Freetds.</td></tr><tr><td>odbc.ini</td><td>Configura os parâmetros de log e trace do ODBC e os Data Source Name (DSN).</td></tr></tbody></table><p>Vamos fazer da forma como manda o manual de instalação do unixODBC, não vamos criar direto os arquivos, vamos criar templates de configuração e depois vamos gerar os arquivos com a ferramenta de linha de comando odbcinst. Crie os 2 templates conforme passado abaixo, substituindo o que for necessário para o seu ambiente:</p><table
style="background-color: #f8faa7; width: 75%;" border="1" cellspacing="0" cellpadding="5" align="center"><tbody><tr><td
width="50%" align="center">tds.driver.template (odbcinst.ini)</td><td
width="50%" align="center">tds.datasource.template (odbc.ini)</td></tr><tr><td
width="50%" align="left">[FreeTDS]<br
/> Description     = v0.63 with protocol v8.0<br
/> Driver          = /usr/lib/odbc/libtdsodbc.so</td><td
width="50%" align="left">[MSSQL]<br
/> Driver          = FreeTDS<br
/> Description       = Metrics<br
/> Trace             = No<br
/> Server               = 192.168.0.201<br
/> Port                  = 1433<br
/> Database            = MT_Ibratec</td></tr></tbody></table><p>Salve estes arquivos em um diretório qualquer e, como root, execute os comandos abaixo:</p><table
style="background-color: #dceaf9; width: 100%;" border="1" cellspacing="1" cellpadding="5" align="left"><tbody><tr><td><table
style="background-color: #dceaf9; width: 100%;" border="0" cellspacing="0" cellpadding="5" align="left"><tbody><tr><td
width="100%">root@laprene:/ # odbcinst -i -d -f tds.driver.template</td></tr><tr><td>root@laprene:/ # odbcinst -i -s -f tds.datasource.template</td></tr></tbody></table></td></tr></tbody></table><p>Pronto, os aquivos odbc.ini e odbcinst.ini foram criados no diretório /etc. Caso queira ter acesso ao banco de dados utilizando outro usuário, logue como este usuário e execute novamente o comando &#8220;odbcinst -i -s -f tds.datasource.template&#8221;, tenha certeza que este usuário tem permissão de leitura no arquivo &#8220;tds.datasource.template&#8221;.</p><p>Para testar a conexão utilize o comando isql, que faz parte do pacote do unixODBC. O comando tem o seguinte perfil:</p><p
align="center"><em>isql DSN [UID [PWD]] [options]</em></p><p>No caso da configuração que fizemos aqui ficaria assim:</p><table
style="background-color: #dceaf9; width: 100%;" border="1" cellspacing="1" cellpadding="5" align="left"><tbody><tr><td><table
style="background-color: #dceaf9; width: 100%;" border="0" cellspacing="1" cellpadding="5" align="left"><tbody><tr><td>root@laprene:/ # isql MSSQL sa &#8220;senha sem as aspas&#8221;</td></tr><tr><td>root@laprene:/ # SQL&gt;</td></tr></tbody></table></td></tr></tbody></table><p>Se você receber o prompt &#8220;SQL&gt;&#8221; sua conexão foi estabelecida e provavelmente tudo estará funcionando adequadamente.</p><p><span
style="font-size: medium;"><strong>Interface Gráfica</strong></span></p><p>1) Para subir a interface gráfica execute na linha de comando:</p><table
style="background-color: #dceaf9; width: 100%;" border="1" cellspacing="1" cellpadding="5" align="left"><tbody><tr><td>root@laprene:/ # ODBCConfig</td></tr></tbody></table><p>Nesse momento irá aparecer a seguinte tela:</p><p
align="center"> <a
href="http://blog.beyond-os.com.br/wp-content/gallery/unixodbc/unixodbc_telainicial.png" title="" class="thickbox" rel="singlepic16" > <img
class="ngg-singlepic ngg-center" src="http://blog.beyond-os.com.br/wp-content/gallery/cache/16__400x300_unixodbc_telainicial.png" alt="unixodbc_telainicial.png" title="unixodbc_telainicial.png" /> </a><p
align="left">2) A primeira coisa a fazer é ir à aba &#8220;Drivers&#8221; para configurarmos os dados do driver Freetds.</p><p
align="center"> <a
href="http://blog.beyond-os.com.br/wp-content/gallery/unixodbc/unixodbc_driver.png" title="" class="thickbox" rel="singlepic12" > <img
class="ngg-singlepic ngg-center" src="http://blog.beyond-os.com.br/wp-content/gallery/cache/12__400x300_unixodbc_driver.png" alt="unixodbc_driver.png" title="unixodbc_driver.png" /> </a></p><p
align="left">Clique em &#8220;Add&#8221;  e configure as informações adequadas conforme tela abaixo.</p><p
align="center"> <a
href="http://blog.beyond-os.com.br/wp-content/gallery/unixodbc/unixodbc_driverconf.png" title="" class="thickbox" rel="singlepic13" > <img
class="ngg-singlepic ngg-center" src="http://blog.beyond-os.com.br/wp-content/gallery/cache/13__400x300_unixodbc_driverconf.png" alt="unixodbc_driverconf.png" title="unixodbc_driverconf.png" /> </a></p><p
align="left">3) Vamos configurar o DSN. Existem duas opções: um específico do usuário(User DSN)  e outro comum a todos usuários da máquina (System DSN). Isso é importante no caso de deixar uma conexão ao banco disponível apenas para um usuário da máquina, como este não é o caso vamos configurar o &#8220;System DSN&#8221;.</p><p
align="center"> <a
href="http://blog.beyond-os.com.br/wp-content/gallery/unixodbc/unixodbc_dsn.png" title="" class="thickbox" rel="singlepic14" > <img
class="ngg-singlepic ngg-center" src="http://blog.beyond-os.com.br/wp-content/gallery/cache/14__400x300_unixodbc_dsn.png" alt="unixodbc_dsn.png" title="unixodbc_dsn.png" /> </a></p><p
align="left">Clique em &#8220;Add&#8221;.</p><p
align="center"> <a
href="http://blog.beyond-os.com.br/wp-content/gallery/unixodbc/unixodbc_dsnconf.png" title="" class="thickbox" rel="singlepic15" > <img
class="ngg-singlepic ngg-center" src="http://blog.beyond-os.com.br/wp-content/gallery/cache/15__400x300_unixodbc_dsnconf.png" alt="unixodbc_dsnconf.png" title="unixodbc_dsnconf.png" /> </a></p><p
align="left">Se repararmos nesta última tela temos o campo &#8220;Servername&#8221;. Se voltarmos aos templates de configuração do DSN vamos perceber que não existe este campos e sim o &#8220;Server&#8221;. Este é um bug que o unixODBC tem, se o &#8220;Servername&#8221; for configurado o odbc não irá funcionar. Neste caso deixe o campo &#8220;Servername&#8221; em branco e no final vá ao arquivo /etc/odbc.ini e inclua a linha &#8220;Server = IP Banco&#8221;.</p><p
align="left">Para testar a conexão utilize o comando isql, como discutido acima, ou use o Datamanager:</p><table
style="background-color: #dceaf9; width: 100%;" border="1" cellspacing="1" cellpadding="5" align="left"><tbody><tr><td>root@laprene:/ # DataManager</td></tr></tbody></table><table
border="0"><tbody><tr><td></td></tr></tbody></table><p
style="text-align: center"> <a
href="http://blog.beyond-os.com.br/wp-content/gallery/unixodbc/unixodbc_datamanager.png" title="" class="thickbox" rel="singlepic17" > <img
class="ngg-singlepic ngg-center" src="http://blog.beyond-os.com.br/wp-content/gallery/cache/17__400x300_unixodbc_datamanager.png" alt="unixodbc_datamanager.png" title="unixodbc_datamanager.png" /> </a></p><p
style="text-align: center" align="left"><p
align="left">Informe o ID e o PWD, se a árvore de tabelas aparecer do lado direto a conexão está funcionando.</p><p
align="left">Pronto configurações concluídas. Agora qualquer aplicação que precisa acessar um banco SQL Server só precisa apontar para o ODBC configurado e ela irá funcionar do linux. Isso é muito útil para aplicações windows rodando no linux com o programa wine.</p><p
align="left">Até a próxima.</p><p
align="left"></div>]]></content:encoded> <wfw:commentRss>http://blog.beyond-os.com.br/2008/04/acessando-sql-server-do-linux/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Served from: blog.beyond-os.com.br @ 2012-02-05 10:52:40 by W3 Total Cache -->
