none
Conexao CSharp ODBC RRS feed

  • Pergunta

  • Bom dia

    estou desenvolvendo em c# e estamos com um problema que nao consegui solucionar ainda
    é simples acredito, preciso fazer uma conexao ao sql server via ODBC, ja configurei a fonte de dados
    mas ele dá erro na strintg de conexao
    tentei assim:

    new OdbcConnection(@"Driver={SQL Server};Server=MICRO99\DBSERVER01;Database=HPEVD000;");

    Onde esta Driver={SQL Server}eu ja substituí para Driver={hpev0010} onde hpev0010 é o nome da fonte de dados, mas continua dando erro dizendo que ele nao reconhece o usuário. Preciso criar uma string que acesse os dados configurados na fonte de dados sem usuário e senha na string de conexão.

    sera que alguém consegue me ajudar? obrigado
    sexta-feira, 15 de março de 2013 13:18

Respostas

  • Na verdade não sei se ele irá funcionar corretamente, pois o indicado é o SQL usar os seus próprios componentes para realizar a conexão (SQLConnection ao invés do OdbcConnection).

    E não tenho certeza se ela irá interpretar da forma que vc deseja, pois nunca vi ninguém realizar isso com o SQL Server, e hoje as boas práticas são outras.

    Acho que vale a pena a pesquisa. 

    Vc tem alguma base de dados SQL que utiliza esse modelo de conexão?

    []s!


    MSc. Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Visual C#
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    • Marcado como Resposta Thiago Cessin terça-feira, 2 de abril de 2013 14:17
    terça-feira, 2 de abril de 2013 13:46
    Moderador

Todas as Respostas

  • Olá Cessin,

    Qual tipo de fonte de dados vc esta tentando conectar? Banco de dados Oracle?

    []s!


    MSc. Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Visual C#
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    sábado, 16 de março de 2013 16:33
    Moderador
  • Ola Fernando, banco de dados SQL Server, fonte de dados ODBC.
    segunda-feira, 1 de abril de 2013 12:58
  • Olá Cessin,

    Neste caso é melhor usar o SqlConnection ao invés do OdbcConnection.

    O namespace System.Data.SqlCliente contém diversas classes que melhoram a sua experiência entre ADO.Net e SQL Server.

    []s!


    MSc. Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Visual C#
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    segunda-feira, 1 de abril de 2013 13:08
    Moderador
  • Fernando

    eu tentei fazer da forma que vc falou com sqlConnection usando essa string que esta acima, mas nao funciona.

    Eu tentei desse jeito:   conn = new  System.Data.Odbc.OdbcConnection("DSN=hpev0010;TRUSTED_CONNECTION=true;");

    e ele funcionou, porém somente quando sou administrador da rede no meu AD, quando logo como um usuário comum na rede, a aplicação da o seguinte erro:

    ERROR [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'BONET99\thiago'.
    ERROR [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'BONET99\thiago'.

    sabe oque pode ser?

    Obrigado

    segunda-feira, 1 de abril de 2013 13:20
  • Olá Cessin,

    Realmente com essa connection string não vai funcionar.

    Conecte utilizando o SqlConnection e tente alguma das connections strings abaixo:

    Initial Catalog=HPEVD000;Data Source=MICRO99\DBSERVER01;Integrated Security=SSPI;Persist Security Info=False;
    
    
    
    
    
    
    .

    ou

    Initial Catalog=HPEVD000;Data Source=MICRO99\DBSERVER01;USER=SEU_USUARIO;PWD=SUA_SENHA
    
    
    
    
    
    
    .

    []s!


    MSc. Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Visual C#
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    terça-feira, 2 de abril de 2013 11:47
    Moderador
  • Ola Fernando,

    A segunda string funciona perfeito! Mas o requisito do meu cliente é que eu conecte ao banco utilizando as configurações da minha fonte de dados odbc configuradas no windows, inclusive o usuário e senha (com autenticação do Sql Server), ou seja, não posso colocar usuário e senha na string de conexão.

    Meus testes com a primeira string que voce passou retornam o seguinte erro:

    Login failed for user 'BONET99\thiago'.

    ou seja, ele está tentando se conectar ao sql com autenticação integrada do meu usuário da rede.

    Como faço pra fazer referencia a essas configurações da fonte de dados do windows através da minha string de conexão, sem passar por essa autenticação integrada com meu usuário de rede?

    Obrigado

    terça-feira, 2 de abril de 2013 12:53
  • Olá Cessin,

    Veja se isso ajuda:

    Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;
    
    .


    Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;
    Trusted_Connection=yes;
    
    
    .


    Driver={SQL Server Native Client 10.0};Server=myServerName\theInstanceName; Database=myDataBase;Trusted_Connection=yes;

    .

    Fonte: http://www.connectionstrings.com/sql-server-2008


    MSc. Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Visual C#
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    terça-feira, 2 de abril de 2013 13:05
    Moderador
  • Pior que não Fernando

    Tentei de todos os jeitos aqui e não conecta.

    No fim das contas a unica que funcionou foi aquela que usei o "dsn", e só quando sou administrador do meu domínio. Será que pode ser alguma coisa do meu AD ?

    terça-feira, 2 de abril de 2013 13:21
  • Olá Cessin,

    Os usuários do seu SQL são diferentes dos seus usuários do SQL.

    Para dar permissão para esses caras vc vai precisar vincular os dois e utilizar os recursos de windows authentication.

    Veja este link: http://stackoverflow.com/questions/5029014/how-to-add-active-directory-user-group-as-login-in-sql-server

    Ele demonstra como vc pode fazer uso do recurso de compartilhamento de usuários entre o SQL e o seu Active Directory.

    []s!


    MSc. Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Visual C#
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    terça-feira, 2 de abril de 2013 13:27
    Moderador
  • Entendi, mas e as credenciais que eu coloco na configuração da fonte de dados odbc no meu windows, ele ignora?

    eu configurei a fonte de dados odbc no meu micro com usuário e senha do SQL, e com autenticação do SqlServer, ele nao deveria usar essas credenciais ?

    terça-feira, 2 de abril de 2013 13:35
  • Na verdade não sei se ele irá funcionar corretamente, pois o indicado é o SQL usar os seus próprios componentes para realizar a conexão (SQLConnection ao invés do OdbcConnection).

    E não tenho certeza se ela irá interpretar da forma que vc deseja, pois nunca vi ninguém realizar isso com o SQL Server, e hoje as boas práticas são outras.

    Acho que vale a pena a pesquisa. 

    Vc tem alguma base de dados SQL que utiliza esse modelo de conexão?

    []s!


    MSc. Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Visual C#
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    • Marcado como Resposta Thiago Cessin terça-feira, 2 de abril de 2013 14:17
    terça-feira, 2 de abril de 2013 13:46
    Moderador
  • Entendi Fernando

    Não tenho nenhuma base que utilize esse modelo, realmente é algo que não consegui uma solução de nenhum jeito, o que é estranho é ele funcionar quando sou adm do domínio, não entendo porque ele amarra isso.

    Tenho que fazer alguns testes do ambiente do cliente porque aqui não terei certeza doque vai funcionar ou não mesmo.

    obrigado pela força

    terça-feira, 2 de abril de 2013 14:17
  • Bom dia Fernando

    Só uma pergunta, falando sobre ODBC, quem tem autorização para utilizar a fonte de dados, digo no próprio windows, quando eu crio uma fonte de dados, quem tem permissão para acessa-la?

    Obrigado

    quarta-feira, 3 de abril de 2013 12:37