none
BANCO DE DADOS NÃO ACESSÍVEL RRS feed

  • Pergunta

  • Boa tarde colegas, 

    Logo no SQL server managament studio através da autenticação do windows porém não estou tendo mais acesso. Ja loguei com o usuário Administrador do AD, com o Administrador da maquina local, ja mudou os usuários que iniciam os serviços porém nada adiantou. O que veio na cabeça foi habilitar o usuário SA porém nem para isso tenho permissão.

    Desde já agradeço a atenção. 

    Segue as imagens: 

    segunda-feira, 25 de janeiro de 2016 16:40

Todas as Respostas

  • Diogo,

    Possivelmente vc não tem acesso para conectar nos bancos, o ideal é algum usuario com permissão de Sysadmin logar e liberar o acesso para você.

    Por fim se não tiver a senha do SA, segue um post que mostra como dar um resset na senha.

    Como redefinir e recuperar a senha de Administrador (sa) do SQL Server


    Se a resposta foi útil por favor classifique. Tiago Neves - @tiagolneves - acesse o meu blog http://www.tiagoneves.net


    • Editado Tiago_Neves segunda-feira, 25 de janeiro de 2016 16:49
    • Sugerido como Resposta FLauffer segunda-feira, 25 de janeiro de 2016 16:54
    segunda-feira, 25 de janeiro de 2016 16:47
  • Diogo, tente realizar uma conexão de administrador dedicada. Veja como realizar este procedimento neste link.

    Ramos, Luis Augusto Quaresma

    segunda-feira, 25 de janeiro de 2016 17:02
  • Vou fazer os testes mais tarde e retorno com o resultado, já adianto que tentei redefinir a senha pelo modo gráfico e estou sem acesso.
    segunda-feira, 25 de janeiro de 2016 17:31
  • Diogo, desculpa, a outra solução o usuário tem que ser sys admin.

    A solução que você tem que usar, você teria que logar no servidor de banco SQL, alterar a instância para rodar como single-user (tem que parar a aplicação), e se conectar com uma conta que seja administrador do servidor. (isso não funciona caso a instância esteja em cluster, porque você nunca consegue a primeira conexão).

    Para iniciar uma instância em single-user, é só adicionar o parâmetro -m no fim do Startup Parameters da instância (no caso, sua instância é SQL Server 2008 R2).

    Referências nestes links:

     https://msdn.microsoft.com/en-us/library/dd207004.aspx (SQL 2012 ou superior)

    https://msdn.microsoft.com/en-us/library/dd207004%28v=sql.105%29.aspx?f=255&MSPPError=-2147217396 (SQL 2008 R2)


    Ramos, Luis Augusto Quaresma

    segunda-feira, 25 de janeiro de 2016 22:02
  • Obrigado Luis, vou testar agorinha sua solução e a do Tiago. Ao concluir retorno com o resultado.

    Muito Obrigado. 
    terça-feira, 26 de janeiro de 2016 02:04
  • Bom dia Luis, 

    Fiz o procedimento porém sem sucesso. A versão é SQL server 2008 R2. Testei com o usuário Administrador da maquina local e o Administrador do domínio. Ambos sem acesso. Segue imagem dos parâmetros: 

    terça-feira, 26 de janeiro de 2016 12:36
  • Bom dia Tiago, 

    Infelizmente não deu certo. Como não tenho permissão de Admin está impossível fazer qualquer alteração. O estranho é que meu usuário é Domain Admin e também tenho o usuário ADM local mas ambos não tem permissão alguma no SQL. Semana passada estava tudo ok.

     
    terça-feira, 26 de janeiro de 2016 12:46
  • Diogo, eu utilizo essa solução sempre, e nunca tive problemas... Há alguns pontos importantes:

    • O usuário que uso existe como login no banco, mas não tem permissão administrativa no SQL (o usuárioque você mostrou no exemplo se conecta a instância, tente com ele);
    • Coloco esse usuário como administrador do servidor;
    • Ao iniciar o SSMS, o mesmo tem que ser iniciado no modo administrador (lembre-se que mesmo com o UAC configurado, algumas GPOs do dominio podem gerar algumas restrições);
    • Ter certeza que nenhuma aplicação ou usuário está conectado ao banco (lembre-se, single-user)

    Agora, eu nunca realizei esse processo em uma instância Express, mas não acredito que esse seja o problema.

    A aplicação está no mesmo servidor de banco? Caso sim, vc tem que garantir que não haja conexão alem da sua tentativa!


    Ramos, Luis Augusto Quaresma

    terça-feira, 26 de janeiro de 2016 13:05
  • A aplicação está no mesmo servidor de banco. Estou usando Windows Autentication, pois não tenho nenhum outro usuário interno do SQL criado, apenas o SA que não sei a senha e nem tenho permissão para habilitar o seu uso. É garantido que ninguém estava conectado ao banco. A unida coisa que não fiz foi iniciar o SSMS em modo administrador, pois eu já estava logado no windows como Administrador. Antes quando estava tudo funcionando, eu usava Windows autentication com o mesmo usuário que estou usando hoje. Aconteceu que o AD corrompeu, e como são poucas maquinas optei por formatar o servidor e criar um dominio com o mesmo nome do antigo, só precisei restaurar a confiança entre AD e estações, incluindo esse servidor de banco. Tirar o servidor do domínio seria uma opção ?

    Obrigado pela atenção.   
    terça-feira, 26 de janeiro de 2016 13:26
  • Diogo,

    Por acaso durante o processo de instalação deste SQL Server foi utilizada alguma conta de domínio?

    Provavelmente esta instância SQL Server foi afetada por esta mudança na relação de confiança do seu domínio, tirar o servidor do domínio não vai resolver o que você terá que fazer é tentar de alguma forma reestabelecer o acesso ao SQL Server para uma conta de usuário Windows.

    Talvez uma alternativa para fazer isso seja acessar o SQL Server em modo DAC - Diagnostic Connection for Database Administrators, fazendo uso do sqlcmd via prompt de comando e através deste modo de conexão tentar definir um novo usuário.


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 26 de janeiro de 2016 13:38
    Moderador
  • Diogo, realmente, o SSMS tem que ser executado como administrador (você pode conferir no link que te passei).

    Agora, somente retirar o servidor do domínio não seria a solução. Criar um domínio novo e adicionar ao servidor, também não vai adiantar, porque o usuário cadastrado no Login do SQL Server não vai ter o mesmo seed do usuário que você criar no novo AD (a não ser que você tenha como migrar os usuários do AD corrompido, meu conhecimento nessa área é limitado). Ai, seria só tirar o servidor de banco do domínio e adicionar ao novo

    Eu tentaria instalar uma nova instância de SQL, criar os usuários com as permissões necessárias, parar a existente, copiar os mdfs e ldfs dos bancos das aplicações para serem atachados na nova instância, e apontaria a aplicação para acessar os bancos na nova instância. Funcionando, removeria a instância antiga

    Espero que ajude!


    Ramos, Luis Augusto Quaresma

    terça-feira, 26 de janeiro de 2016 13:41
  • Pedro, para utilizar o DAC, o usuário já não teria que ser sys admin do banco?

    Mais uma duvida, a perda de relação de confiança com o domínio bloquearia qualquer acesso a instância? No print, o usuário conseguia a conexão, só não tinha privilégios para administrar a instância. 

    Agora, uma conta local do Windows como administrador deveria funcionar para se logar a instância, no modo single-user e administrador, já que o AD já era. Eu nunca precisei utilizar essa autenticação neste cenário, mas vou fazer um teste aqui e digo o resultado


    Ramos, Luis Augusto Quaresma

    terça-feira, 26 de janeiro de 2016 14:24
  • Luis,

    Então, eu sugeri o uso do DAC para que ele possa ter acesso ao banco de dados Master e ai tentar entender o que esta acontecendo com o acesso ao banco de dados que ele não esta conseguindo acessar.

    Se ele por acaso instalou o SQL Server através de uma conta de domínio, provavelmente vai ter problemas para realizar o acesso pois o SSID desta conta que estava vinculada ao domínio não é mais o mesmo, sendo assim, toda e qualquer relação de confiança foi perdida.

    Em relação a conta local, também não é bem assim, esta conta precisa ter sido definido como uma conta confiável durante o processo de instalação do SQL Server ou em algum momento esta conta de administrador venha a ser definida como uma conta com permissão de acesso a esta instância.

    Uma possíbilidade é tentar adicionar uma possível conta de administrador local aos grupos de usuários que SQL Server criou durante o processo de instalação, através da ferramenta Computer Management na guia Local Users and Groups existente no Windows é possível encontrar os grupos criados durante o Setup.

    Dentro do Management Studio somente os usuários ou grupos de usuários definidos na guia Security teoricamente podem ter a permissão para realizar logon e acesso a instância e seus objetos.


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 26 de janeiro de 2016 15:14
    Moderador
  • Pedro, obrigado pelas respostas, simulei o seguinte cenário aqui, criei um servidor e coloquei no domínio, instalei o SQL Server, dei permissões a usuários, tudo normal. Ai fui e destruí a relação de confiança do servidor (apaguei os registros do AD e do DNS para esse servidor.

    O acesso passou a ser somente local, com o usuário criado na instalação, para tirar riscos, criei uma nova conta de maquina, coloquei como administrador e loguei com ela.

    Realizei os procedimentos de colocar em single-user a instância, tive que trocar a conta de serviço, que parou de autenticar no AD, e loguei com a conta local admin nova.

    Funcionou sem problemas, eu coloquei para registrar as telas, mas estourou o limite e não ficou bom. Eu tenho um compromiso agora, mais tarde eu faço de novo, fiz snapshot da VM. 

    Consegui alterar a instancia para autenticação mista, habilitei o SA, alterei a senha, e depois de voltar a instância para multiplas conexões, consegui ter acesso administrativo com o SA.



    Ramos, Luis Augusto Quaresma


    • Editado Luis Augusto Quaresma Ramos terça-feira, 26 de janeiro de 2016 17:02 uma frase foi apagada, dando um sentido estranho ao comentário.
    terça-feira, 26 de janeiro de 2016 16:57
  • Luis,

    Que bom, acredito que você conseguiu entender a minha sugestão!!!

    Faça todos os possíveis testes e depois nos retorne as conclusões.


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 26 de janeiro de 2016 17:15
    Moderador
  • Entendi sim Pedro. Minha duvida é que para poder utilizar o DAC, o Diogo iria precisar de um usuário sys admin, por isso meu questionamento. Quando ele postou a thread, eu não tinha prestado atenção no cenário dele no todo. Eu passei por isso no passado, e o DAC não resolveu para mim exatamente porque a instância de SQL Server não tinha mais um usuário sys admin (tinham apagado o único usuário sys admin do AD). 

    Com isso, não tínhamos mais como reaver o acesso. Pelas imagens do Diogo, depois que vi que ele tinha acesso a instância, mas não tinha permissão administrativa, lembrei que já tinha utilizado a solução de me logar como administrador do servidor, e autenticado depois de configurar a instância para single-user. Infelizmente, o Diogo não executou o Manager Studio como administrador, ai o motivo dele não ter consigo o acesso.

    Um ponto que aprendi com essa thread foi que para fazer uma DAC no SQL Express, é preciso habilitar a traceflag 7806.

    O lab para tentar conectar com a máquina fora do domínio, foi só para validar se não teria problemas, uma vez que o cenário do Diogo mudou com a perda do AD.

    Tanto acho valida sua opinião, que sem pensar passei  a mesma :)

    Os resultados dos meus testes agora a noite são os seguintes:

    • Como a maquina não está mais no domínio (tirei manualmente, simulando o mesmo problema do AD), configurei a instância para iniciar como single-user com a conta local "NT AUTHORITY/NetworkService";
    • Executei o SSMS como administrador;
    • Autentiquei por conta integrada do usuário local logado (nesta simulação, o mixed não estava habilitado);
    • Habilitei o SA e reconfigurei a senha;
    • Habilitei o autenticação mixed e fechei o SSMS;
    • Reconfigurei a instância para multi connetcions e reiniciei o SQL Server;
    • Perfeito, agora já tinha uma porta de entrada sys admin novamente na instância, adicionei o servidor a outro domínio, fora da floresta do domínio antigo;
    • logando com uma conta nova de admin no servidor de SQL, foi só acessar, apagar os logins antigos e e recriar os logins (no caso, não estou levando em conta o remapeamento de usuários órfãos do bancos);
    • No primeiro cenário que falei anteriormente, executei todos os passos, a unica diferença, é que o AD era o mesmo, com isso, o servidor e o SQL voltaram a responder sem nenhuma perda, pois não houve alteração dos seeds.

    Claro que é um processo que deve ser feito com todo cuidado, pois um servidor de banco é um servidor de banco.

    Diogo, o cenário de uma nova instância é desnecessário neste caso, você só vai ter que atentar para as reconfigurações de aplicações posteriormente (contas de acesso, etc).

    Espero ter ajudado!


    Ramos, Luis Augusto Quaresma

    terça-feira, 26 de janeiro de 2016 22:26
  • Bom dia Junior, 

    Sim, foi utilizado o Administrador do domínio. Provavelmente então o problema foi esse, como formatei o servidor e criei um novo domínio, o SID do usuário Administrador mudou e fiquei sem permissão.    
    quarta-feira, 27 de janeiro de 2016 12:31
  • Bom dia Luis, 

    Aprendi bastante com a discussão saudável de vocês. Que bom que meu problema trouxe novas experiências rs. Entendi que o motivo da falta de permissão é porque instalei o SQL server e criei a instância com um usuário que não existe mais, pois o novo usuário Administrador tem um SID diferente. Loguei com o usuário Admin local pela primeira vez depois que toda essa bagunça aconteceu, talvez por isso ele também não tenha permissão na instância. O procedimento que devo fazer então é fazer o mesmo processo do Single-user executando o SSMS como Administrador ? 

    Ou já criar uma nova instância ?

    Só para informação adicional, instalei o SQL server em outro servidor, está limpo e com uma instância criada. 

    quarta-feira, 27 de janeiro de 2016 12:55
  • Diogo, o procedimento funciona com a conta local, então você pode acessar a instância e configurar o acesso ao SA ou qualquer conta SQL que você deseje (só valide se o mixed authentication está habilitado).

     Ai agora é com você, você pode arrumar o servidor com a instância, colocar no novo domínio e configurar os usuários de dominio no SQL utilizando a conta sys admin que vc configurou, ou, pode migrar os data e log files para o novo servidor e realizar o atach dos bancos lá. 


    Ramos, Luis Augusto Quaresma

    quarta-feira, 27 de janeiro de 2016 13:36
  • Vou fazer o procedimento e posto os resultados.
    quarta-feira, 27 de janeiro de 2016 14:26
  • Boa tarde Luis, segue as imagens do passo a passo. Logado com usuário local no windows, serviço do SQL rodando no single-user, executando o SSMS como Administrador. Não tenho permissão para alterar para o mixed authentication e nem para acessar os bancos. DBM21 é o nome da maquina local.

    quarta-feira, 27 de janeiro de 2016 16:01
  • Diogo, sei que é uma pergunta obvia, mas vou fazer, você reiniciou a instância?

    Apesar de ser um ambiente isolado, eu fiz todos os testes possíveis, e em nenhum tive problemas. Meu cenário mais critico foi remover o servidor do domínio e fazer tudo no servidor sem nenhuma autenticação. (Aqui estou adicionando nenhuma autenticação de domínio, só autenticação com usuário administrador local da maquina)


    Ramos, Luis Augusto Quaresma


    quarta-feira, 27 de janeiro de 2016 16:11
  • Luis,

    Parei o serviço, coloquei o parâmetro -m e depois iniciei. Acho que vou desistir rs. A melhor opção que estou visualizando é a de criar uma nova instância e atachar os bancos. Nunca fiz esse procedimento antes, tem alguma dica ? Algo que preciso prestar bem atenção para não dar nada errado já visualizando a criação da nova instância ?

    Acredito que criar uma nova instância e atachar os bancos seja a melhor opção porque estamos falando de um banco muito pequeno, é apenas 3GB. Muito pequeno porém importantíssimo. 

    Valeu.


    quarta-feira, 27 de janeiro de 2016 19:46