locked
Erro Login failed for user RRS feed

Respostas

  • Flashed

    o comando é este...

    pela tela gráfica http://forum.imasters.com.br/topic/335797-criando-usuario-no-sql-server-2008/

     


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Marcado como Resposta Jonas São Paulo segunda-feira, 23 de janeiro de 2012 09:00
    quinta-feira, 19 de janeiro de 2012 12:54
  • Flashed

    a alteração seria no arquivo UDL, mas você ja comentou que conseguiu logar sem problemas

    Execute os comandos abaixo e verifique se o usuario existe e se ele tem permissões

    SELECT name, principal_id, type_desc, is_disabled, default_database_name, default_language_name 
         FROM sys.server_principals
        WHERE name = 'dominio\nome_do_usuario'
    go
     
    SELECT suser_name(role_principal_id), suser_name(member_principal_id) 
        FROM sys.server_role_members
        WHERE member_principal_id = suser_id( 'dominio\nome_do_usuario' )
    go
     
    SELECT class_desc, suser_name(grantee_principal_id), permission_name, state_desc
        FROM sys.server_permissions
        WHERE grantee_principal_id = suser_id( 'dominio\nome_do_usuario' )
    Go
    

    O Erro 18456 é um pouco vago precisarámos saber qual o state deste erro, para isto execute o comando abaixo e tente localizar a mensagem "Login failed for user 'nome do usuario' e poste a mensagem completa e logo acima deve existe um codigo de erro 18456 e o state do erro

    exec sp_readerrorlog



     

     


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Marcado como Resposta Jonas São Paulo segunda-feira, 23 de janeiro de 2012 09:01
    quinta-feira, 19 de janeiro de 2012 17:49
  • Flashed

    O SQL é um Login SQL, e sua aplicação esta usando um Login Windows, no lugar de flashed\sa, vc deve informar o login do seu usuário 
    Ex.  MSFT\billGates

    Outra possibilidade é o SQL authentication
    Vc pode criar um login no SQL e usar autenticaçã o SQL ao inves de autenticação Windows

    USE [master]
    GO
    CREATE LOGIN [teste] WITH PASSWORD=N'senha', DEFAULT_DATABASE=[dbTeste]
    GO
    
    USE [dbTeste]
    GO
    CREATE USER [teste] FOR LOGIN [teste]
    GO
    EXEC sp_addrolemember N'db_datareader', N'teste'
    GO
    EXEC sp_addrolemember N'db_datawriter', N'teste'
    GO
    

    e vc altera sua connections string para usar o usuario que vc criou

    "Provider=SQLOLEDB.1;User ID=teste;Password=senha;Persist Security Info=False;Initial Catalog=colaboradores;Data Source=Flashed"


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Marcado como Resposta Jonas São Paulo segunda-feira, 23 de janeiro de 2012 08:59
    quinta-feira, 19 de janeiro de 2012 19:52

Todas as Respostas

  • Flashed

    você precisa criar o login no SQL para o usuáio windows que esta executando a aplicação

    OBS. postei o comando em uma outra thread que vc abriu durante esta semana...


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    quinta-feira, 19 de janeiro de 2012 12:40
  • é este comando?

     

    USE master
    go
    create login [dominio\usuario] from windows
    go
    USE seu_banco
    GO
    CREATE USER [dominio\usuario] FOR LOGIN [dominio\usuario]
    GO
    EXEC sp_addrolemember N'db_datareader', N'dominio\usuario'
    EXEC sp_addrolemember N'db_datawriter', N'dominio\usuario'
    GO

     

    O meu programa vb vai precisar de ligar a dois banco de dados, o banco de dados "nomes" e o "referencias"
    Não dá para fazer isso via menu?

    Quer dizer então que para cada pc que se liga os meus banco de dados tem que ter um login no sql?

    Não dá para dar acesso a todos?

    Desculpe alguma coisa mas é que ainda não percebi bem isto:(

    Obrigado


    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com

    quinta-feira, 19 de janeiro de 2012 12:43
  • Este são os meus usuários.

    o user sa está configurado conforme dala nos link´s que postei em cima.

    Tenho que criar um user pró windows?

    Obrigado


    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com
    quinta-feira, 19 de janeiro de 2012 12:45
  • Flashed

    o comando é este...

    pela tela gráfica http://forum.imasters.com.br/topic/335797-criando-usuario-no-sql-server-2008/

     


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Marcado como Resposta Jonas São Paulo segunda-feira, 23 de janeiro de 2012 09:00
    quinta-feira, 19 de janeiro de 2012 12:54
  • Se for permissao de usuario, faça o teste com um usuario "sysadmn" e veja se conecta

    Ja exprimentei via telnet e não é da porta.

    Como testo o user via telnet?

    A firewall esta desligada.

    Obrigadfo


    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com
    quinta-feira, 19 de janeiro de 2012 13:05
  • vc não vai consegui dar um telnet para o usuário

    o que vc pode tentar é:
    destativar firewall
    habilitar os protocolos TCP/IP e Named Pipes no Configuration Manager
    Habilitar o SQL Browser

    ** todo este processo é válido se vc nao conseguir conectar nem o SA ou outro usuário sysadmin

    Para testar o usuário:

    crie um arqui teste.txt e renomeia para teste.UDL
    execute o arquivo e selecio o provider no SQL e clique em next e informe o nome do seu SQL e clique em test


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    quinta-feira, 19 de janeiro de 2012 13:35
  • Boas

    destativar firewall
    habilitar os protocolos TCP/IP e Named Pipes no Configuration Manager
    Habilitar o SQL Browser

    Esta feito.

    O arquivo teste.udl é apra exprimentar no meu pc ou do cliente?

    No meu deu resultado ok.

    OBriado


    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com
    quinta-feira, 19 de janeiro de 2012 13:59
  • Já consegui fazer o teste através do UDL. O user que testei é o user sa.

    Na minha string não tenho que fazer referencia ao user?

    "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=colaboradores;Data Source=Flashed"

    Flashed é o nome do pc que por acaso é o nome da instancia.

    Fiz o comando select @@servername no sql server e deu-me um nome igual ao do pc.

     

    A firewall está desactivada, consigo aceder via UDL e telnet ao meu servidor a partir do cliente. Porque que dá esta mensagem?

     

    No Evente viewer apareceu-me esta mensagem de warning no SQL Broswer 

    The SQLBrowser service was unable to establish Analysis Services discovery

     

    Como resolvo estes erros todos?

    Obrigado



    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com
    quinta-feira, 19 de janeiro de 2012 14:46
  • Flashed

    o teste deve ser feito da estação que vc esta recebendo o erro...

    vc deve marcar a opcao Use Windows NT Integrated Security, pois na sua string vc esta ifnormando o Integrate Security=SSPI, que significa que ele vai tentar conectar no SQL server com o login do Windows

    Pela Mensagem o login não foi criado ou não tem acesso na base


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    quinta-feira, 19 de janeiro de 2012 17:23
  • Amigo eu usei o arquivo UDL no cliente e consegui estabelecer ligação com o login sa password 4 e vi as tabelas todas:)

    No consigo é fazer isso via vb, pois aparece esse erro.

    Vou fazer a alteração que voce fala. Onde fazo essa alteração?

    Obrigado 


    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com
    quinta-feira, 19 de janeiro de 2012 17:31
  • Flashed

    a alteração seria no arquivo UDL, mas você ja comentou que conseguiu logar sem problemas

    Execute os comandos abaixo e verifique se o usuario existe e se ele tem permissões

    SELECT name, principal_id, type_desc, is_disabled, default_database_name, default_language_name 
         FROM sys.server_principals
        WHERE name = 'dominio\nome_do_usuario'
    go
     
    SELECT suser_name(role_principal_id), suser_name(member_principal_id) 
        FROM sys.server_role_members
        WHERE member_principal_id = suser_id( 'dominio\nome_do_usuario' )
    go
     
    SELECT class_desc, suser_name(grantee_principal_id), permission_name, state_desc
        FROM sys.server_permissions
        WHERE grantee_principal_id = suser_id( 'dominio\nome_do_usuario' )
    Go
    

    O Erro 18456 é um pouco vago precisarámos saber qual o state deste erro, para isto execute o comando abaixo e tente localizar a mensagem "Login failed for user 'nome do usuario' e poste a mensagem completa e logo acima deve existe um codigo de erro 18456 e o state do erro

    exec sp_readerrorlog



     

     


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Marcado como Resposta Jonas São Paulo segunda-feira, 23 de janeiro de 2012 09:01
    quinta-feira, 19 de janeiro de 2012 17:49
  • Desculpe marcelo, mas onde executo esses comandos?

    na maquina do cliente não tem instalado o sql server.

     

    Esse erro 18456 dava antes, agora já não dá. Apenas aparece a mensagem de erro no cliente mas no meu event viewer nada aparece. 

    O que é estranho.


    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com
    quinta-feira, 19 de janeiro de 2012 17:54
  • CA vai, isto foi executado no meu pc, o servidor.

     



    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com
    quinta-feira, 19 de janeiro de 2012 18:01
  • Flashed

    O SQL é um Login SQL, e sua aplicação esta usando um Login Windows, no lugar de flashed\sa, vc deve informar o login do seu usuário 
    Ex.  MSFT\billGates

    Outra possibilidade é o SQL authentication
    Vc pode criar um login no SQL e usar autenticaçã o SQL ao inves de autenticação Windows

    USE [master]
    GO
    CREATE LOGIN [teste] WITH PASSWORD=N'senha', DEFAULT_DATABASE=[dbTeste]
    GO
    
    USE [dbTeste]
    GO
    CREATE USER [teste] FOR LOGIN [teste]
    GO
    EXEC sp_addrolemember N'db_datareader', N'teste'
    GO
    EXEC sp_addrolemember N'db_datawriter', N'teste'
    GO
    

    e vc altera sua connections string para usar o usuario que vc criou

    "Provider=SQLOLEDB.1;User ID=teste;Password=senha;Persist Security Info=False;Initial Catalog=colaboradores;Data Source=Flashed"


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Marcado como Resposta Jonas São Paulo segunda-feira, 23 de janeiro de 2012 08:59
    quinta-feira, 19 de janeiro de 2012 19:52
  • O erro deve-se ao datasource?

    Então o  MSFT é o nome da máquina, e o  billGates é o nome do da conta do sql, certo?

    Esta a dizer que na minha aplicação vb devo especificar o nome da maquina e o nome do login?

    Ficaria então assim:

    "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=colaboradores;Data Source=Flashed\sa"

    Basta fazer isto? Desculpe mas não percebi se devo especificar melhor no datasource ou se devo usar a alternativa que falou.

    sa no login do sql:

    Obrigado

    Aguardo ansiosamente por respostas :)


    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com
    quinta-feira, 19 de janeiro de 2012 23:28
  • Boas

     

    Desculpem a demora mas estive ausente estes dias.

    O problema já esta resolvido, fiz o que o Marcelo disse e deu resultado.

    Obrigado a todos pela grande ajuda :)

     


    Visual Basic 2008 Express Edition SQL Server Management Studio flashedr8@gmail.com
    segunda-feira, 23 de janeiro de 2012 09:00