Servidor SQL: sucesso de autenticação, mas " a base de dados [dbName] não está acessível. (Explicador do objecto)"

estou a usar o windows 8.1 e o servidor SQL 2012.

estava a usar uma conta do so "Manoj" para aceder ao servidor SQL com autenticação do windows. Recentemente eu apaguei a minha conta de usuário "Manoj "do OS e criei uma nova conta com o mesmo nome"Manoj".

mas o sistema tomou a nova conta como "Manoj_2". Esta mudança impede-me de aceder às antigas bases de dados que criei.

Diz que ...

a base de dados [dbName] não está acessível. (Explicador do objecto)

sempre que tento aceder a qualquer um dos DBs anteriores que criei.

Eu costumava criar um novo login no servidor SQL para" Manoj_2", com o DB por omissão como"master". Mas ainda assim o problema persiste.

Não consigo separar o DBs. Não consigo expandir o DBs.

Nota: no sistema operacional, tenho direitos de administração para a conta" Manoj".

Por favor, alguém me diga o que fazer? quer com o sistema operacional quer com o servidor SQL

Author: marc_s, 2014-10-05

17 answers

Para esta situação, terá de se ligar à base de dados em Modo de utilizador único .

Iniciar o servidor SQL no modo de utilizador único permite a qualquer membro do grupo de Administradores locais do computador ligar-se à instância do servidor SQL como membro da função do servidor fixo do sysadmin.

Aqui você pode encontrar instrução passo a Passo para fazer isto.

Em resumo, deverá iniciar a instância sqlserver com os parâmetros - m , Após iniciar a gestão do servidor Sql Studio with windows authentication.

Agora você é um sysadmin , atribuir o papel do sysadmin ao seu utilizador, sair e remover o parâmetro -m e reiniciar o servidor de sql.

 27
Author: Max, 2014-10-05 09:07:13
Solução muito estúpida, mas vou adicioná-la aqui, caso alguém venha de uma pesquisa no Google. Eu tinha reiniciado o serviço SQL e estava a receber este erro e no meu caso, esperar 10 minutos era suficiente e estava tudo bem novamente. Parece que este é o erro que você obtém quando ele está apenas começando.
 6
Author: Fiona - myaccessible.website, 2015-01-14 11:53:21

O problema é que o utilizador na base de dados é um "órfão". Isso significa que não há id de login ou senha associada com o usuário. Isso é verdade mesmo que exista um ID de login que corresponda ao usuário, uma vez que existe um GUID (chamado de SID no Microsoft-speak) que também tem que corresponder.

Isto costumava ser uma dor de consertar, mas atualmente (SQL Server 2000, SP3) há um procedimento armazenado que faz a elevação pesada.

Todas estas instruções devem ser feitas como base de dados administrador, com a base de dados restaurada seleccionada.

Primeiro, certifica-te que este é o problema. Isto irá listar os utilizadores órfãos:
EXEC sp_change_users_login 'Report'

Se já tiver um ID de autenticação e uma senha para este utilizador, corrija-a fazendo:

EXEC sp_change_users_login 'Auto_Fix', 'user'

Se quiser criar um novo ID de autenticação e senha para este utilizador, corrija-o fazendo:

EXEC sp_change_users_login 'Auto_Fix', 'user', 'login', 'password'

este texto foi obtido em http://www.fileformat.info/tip/microsoft/sql_orphan_user.htm em Dez-13-2017

 3
Author: dellasavia, 2017-12-13 16:14:21

This is caused when the user's default database is set to a database they don't have permissions or its offline.

Tenta apenas adicionar de novo o utilizador.Pleae dê uma olhada aqui também.

 2
Author: Avinash Babu, 2017-04-13 12:42:39
Foi isto que me levou a esta questão e como a corrigi.

Restaurou a minha base de dados para outra instância do servidor SQL de A.bak file, que incluía um usuário pré-existente.

Tentou aceder à base de dados restaurada da minha aplicação, como de costume, usando o mesmo texto de ligação, mas actualizou a instância do servidor.

Erro recebido.

Utilizador apagado como o proprietário do DB, depois lido com as mesmas credenciais, mappings, login, etc.

Foi capaz de se autenticar como utilizador depois a ler o Utilizador após a restauração.

 2
Author: Rachael, 2015-05-21 23:39:24

Ir para

Segurança > > Logins >> Carregue com o botão direito no utilizador > > propriedades > >

Na navegação à esquerda Mover para > > > mapeamento do utilizador > > verificar a base de dados e na "Associação de funções da Base de dados para: " verificar "DB_ proprietário" para o utilizador que está a experimentar o problema.

PROBLEMA RESOLVIDO...
 1
Author: ingpedrorr, 2016-12-21 16:31:56
Por favor, tenta este guião.. O que este script faz é olhar para as sessões ativas do banco de dados e mata-os para que você possa trazer o banco de dados de volta on-line.
 CREATE TABLE #temp_sp_who2
        (
          SPID INT,
          Status VARCHAR(1000) NULL,
          Login SYSNAME NULL,
          HostName SYSNAME NULL,
          BlkBy SYSNAME NULL,
          DBName SYSNAME NULL,
          Command VARCHAR(1000) NULL,
          CPUTime INT NULL,
          DiskIO INT NULL,
          LastBatch VARCHAR(1000) NULL,
          ProgramName VARCHAR(1000) NULL,
          SPID2 INT
          , rEQUESTID INT NULL --comment out for SQL 2000 databases

        )


    INSERT  INTO #temp_sp_who2
    EXEC sp_who2


    declare @kill nvarchar(max)= ''
    SELECT  @kill = @kill+ 'kill '+convert(varchar,spid) +';'
    FROM    #temp_sp_who2
    WHERE   DBName = 'databasename'

    exec sp_executesql @kill


  ALTER DATABASE DATABASENAME SET ONLINE WITH IMMEDIATE ROLLBACK
 0
Author: akhila vangala, 2015-10-01 19:32:10

No meu caso, eu simplesmente tive que iniciar o aplicativo com "Run as administrative", a fim de acessar qualquer coisa. Caso contrário, eu teria o erro que mencionou.

 0
Author: Amalgovinus, 2015-11-11 19:09:41

Eu tinha dois usuários: um que tinha o papel sysadmin, o outro (o problemático) não.

Como tal, entrei com o outro utilizador(poderá criar um novo) e assinalei a opção ckeck' sysadmin 'a partir de: Security --> Logins -- > Right ckick no seu nome de utilizador SQL -- > propriedades -- > funções do servidor -- > certifique-se que a opção' sysadmin ' tem a marca de verificação. Carregue em OK e tente ligar-se ao utilizador acabado de verificar.

 0
Author: laviki, 2016-06-08 14:53:16

Isto arranjou-o para mim:

Use [dbName]
GO

EXEC sp_change_users_login 'Auto_Fix','Manoj', null, 'Manojspassword'
GO
 0
Author: Njal, 2016-09-20 08:28:17

Questão: a base de dados [dbName] não está acessível. (ObjectExplorer) obteve o erro ao expandir a base de dados.

Solução: eliminar a opção base de dados > largar Anexar a base de dados de novo com o ficheiro mdf na pasta de dados MSSQL

 0
Author: aimTheMoon, 2016-12-19 09:04:20

Se está a usar o Estúdio de gestão Sql, Inicie-o como administrador.

Botão direito - >correr como Administrador

 0
Author: kmiloangel, 2017-10-10 20:48:37

No meu caso, reiniciar o serviço de servidor SQL foi suficiente para resolver o problema.

 0
Author: qub1n, 2017-11-13 16:01:06
O meu problema foi resolvido reiniciando o serviço do servidor MS SQL, simples.
 0
Author: Shakti, 2018-01-18 09:03:35

No meu caso, funcionou quando eu tinha aberto o estúdio de gestão de servidores SQL com credenciais de administrador e eu clicei à direita na base de dados e seleccionei "ir online" ou algo do género.

 0
Author: Samurai Jack, 2018-03-05 15:29:52

Obter este erro nestes passos:

    Faz "ficar offline". "Ficar offline" estava a correr muito tempo, por isso fechei esta janela. Então, tive um erro.

Passos para corrigir:

  1. Vá ao "Monitor de actividade" e apague todas as ligações a este db. Então DB ficou realmente offline e tudo está bem.
 -1
Author: Ssss, 2015-12-08 13:50:18

Eu executei os passos abaixo e funcionou para mim:

1) Ligar ao servidor SQL - >segurança - >logins - >procurar pelo Utilizador em particular - >propriedades - >funções no servidor - > activar a opção "administrador de sistemas"

 -1
Author: Girish Kumar Mayigowda, 2017-07-24 08:06:33