AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 29613
Accepted
Pete Oakey
Pete Oakey
Asked: 2012-12-01 08:30:47 +0800 CST2012-12-01 08:30:47 +0800 CST 2012-12-01 08:30:47 +0800 CST

Falha no login do usuário - Erro 18456 - Gravidade 14, Estado 38

  • 772

Mensagem que o SQL Server Log File Viewer mostra:

Login failed for user [User]
Error: 18456, Severity: 14, State 38

O que realmente significa:

Failed to open the explicitly specified database

Minha pergunta:

Existe uma lista em algum lugar de todas as variações dos erros 18456 (Falha no login), para cada combinação de gravidade e estado, com o texto de descrição útil?

Eu tive um Google, mas não consigo encontrar nada além de combinações específicas.

sql-server errors
  • 9 9 respostas
  • 118596 Views

9 respostas

  • Voted
  1. Best Answer
    Pete Oakey
    2012-12-01T08:33:16+08:002012-12-01T08:33:16+08:00

    Códigos de Estado e seu significado.

    1      'Account is locked out'
    2      'User id is not valid'
    3-4    'Undocumented'
    5      'User id is not valid'
    6      'Undocumented'
    7      'The login being used is disabled'
    8      'Incorrect password'
    9      'Invalid password'
    10     'Related to a SQL login being bound to Windows domain password policy enforcement.
            See KB925744.'
    11-12  'Login valid but server access failed'
    16     'Login valid, but not permissioned to use the target database'
    18     'Password expired'
    27     'Initial database could not be found'
    38     'Login valid but database unavailable (or login not permissioned)'
    

    Informações mais detalhadas estão disponíveis no blog de Aaron Bertrand .

    Para encontrar o código de status, você precisa inspecionar o log de erros do SQL Server depois de garantir que os logons com falha sejam registrados no log de erros .

    • 28
  2. Rob Bowman
    2017-01-10T02:57:58+08:002017-01-10T02:57:58+08:00

    Eu tive o mesmo erro com o código de estado 38 causado por um erro de digitação do nome do banco de dados na string de conexão.

    • 5
  3. Bill W.
    2016-07-07T10:12:41+08:002016-07-07T10:12:41+08:00

    Aqui está o que eu encontrei quando resolvi este erro: Eu criei algumas conexões SQL usando o login do Windows e não o nome de usuário e a senha. Não tenho certeza do que ou como aconteceu, mas aconteceu. Eu os excluí e depois reconstruí meus modelos de entidade. Usei outra string de conexão que sabia ser boa, e tudo é alegria. A chave é Persist Security Info=True, que não funcionará em uma rede ou site externo

    • 2
  4. Dick Vandenberg
    2017-06-11T12:33:27+08:002017-06-11T12:33:27+08:00

    Eu tinha 18456 com estado 38 também. Acabou que a string de conexão tinha 'integrated security=true' que não era o que eu queria. A cadeia de conexão continha o ID do usuário e a senha que deveriam ser usados. Quando mudei a configuração para false, tudo estava bem.

    • 2
  5. Nasser
    2017-10-11T00:18:05+08:002017-10-11T00:18:05+08:00

    Recebi este erro ao tentar fazer logon em um SQL Server com várias instâncias. A cadeia de conexão não nomeou uma instância. Depois de nomear a instância (SERVERNAME\INSTANCENAME), consegui me conectar ao servidor.

    • 2
  6. John Dyer
    2018-10-30T10:00:31+08:002018-10-30T10:00:31+08:00

    @Pete Oakly está no caminho certo com a lista de códigos de estado. Especificamente, este é o código em que todos estamos interessados:

    38 'Login válido mas banco de dados indisponível (ou login não autorizado)'

    Meu problema começou em um log de erros C#:

    Exception|PublishedException|000161|10/29/2018|11:06:40.210|16284|InnerException|Não é possível abrir o banco de dados "InterestingDataBaseName" solicitado pelo logon. O login falhou. Falha no login do usuário 'CORP\anyuser'.

    Meus olhos estavam focados na parte "Falha no login" . Meu usuário era sa para este servidor de banco de dados, como o login poderia falhar?

    Eu tropecei neste post por um trio de programadores que tinham a resposta: https://justaprogrammer.net/2012/12/09/a-misleading-sql-error-message-error-18456-severity-14-state-38 /

    Não é a falha de login em si, é o banco de dados que estou tentando acessar. Isso não existe!

    Bingo! Eu mudei o nome do banco de dados por outros motivos e não atualizei o arquivo de configuração. Corrigido o nome do banco de dados e as coisas estão funcionando como um encanto mais uma vez.

    • 2
  7. Sti
    2018-05-17T00:43:46+08:002018-05-17T00:43:46+08:00

    No nosso caso no SQL Server Configuration Manager | Configuração de rede do SQL Server | TCP/IP | IP | A porta TCP NÃO foi definida.

    Sem podermos estabelecer uma conexão ODBC e até mesmo usar uma conexão remota do SQL Management Studio e fazer login com o usuário. No entanto, cada vez que acessamos a url do nosso aplicativo Tomcat, ele lançava uma conexão jdbc, então detectamos no log do SQL Server o erro: Falha de login para o usuário 'xxxx': motivo Falha ao abrir o banco de dados definido explícito, erro 18456, gravidade 14 , Estado 38

    Aqui um resumo da string de conexão jdbc

    "jdbc:sqlserver://10.10.10.10:1433;databaseName=zzzzzzz" username="yyyyyy" password="xxxxxx" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" defaultAutoCommit="true"/>
    <Resource name="jdbc/application" 
    

    Isso para dizer que também na Configuração de Rede do SQL Server | Protocolos para <nome da instância> | Os pipes nomeados devem ser HABILITADOS e o nome do pipe \\.\pipe\MSSQL$<instance name>\sql\query deve ser definido corretamente.

    • 1
  8. user165491
    2018-12-07T21:57:46+08:002018-12-07T21:57:46+08:00

    Bem, este é um erro relacionado à permissão do banco de dados. Estou adicionando minha solução nesta questão porque é muito importante entender o papel do DBA. Então vamos as minhas sugestões:

    • Vá para o Gerenciador de Servidores
    • Selecione Ferramentas e, em seguida, Gerenciamento do computador
    • Verifique os usuários e grupos locais
    • Verifique o nome do administrador com a descrição 'Conta integrada para administrar o computador/domínio'

    Agora, faça login com esse nome de usuário e você poderá conceder acesso ao usuário. Para fazer isso:

    Vá para Segurança , clique com o botão direito em Logins e selecione Novo Login

    Na janela de login, você pode digitar o nome de usuário ou pesquisá-lo. Selecione o usuário na lista e clique em OK e OK novamente.

    Na mesma janela de login, clique em Server Roles e conceda o acesso ao usuário selecionado como: sysadmin, serveradmin, decreator etc; clique em OK .

    Se você deseja conceder acesso a um banco de dados individual, vá para Mapeamento de usuários e forneça o acesso conforme sua necessidade.

    Verifique o Status do banco de dados: Permissão: Conceder Login: Habilitado

    Clique em OK

    • 1
  9. Robert van den Berg
    2022-04-29T01:30:43+08:002022-04-29T01:30:43+08:00

    Outra causa possível para esse erro: um logon acabou de ser adicionado a um grupo do Active Directory que tem as permissões corretas, mas o token AD para o logon ainda não foi atualizado. Atualizar o token corrigirá o problema; uma maneira de fazer isso é pedir ao usuário que faça logout de sua estação de trabalho.

    • 0

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve