none
Owner BD não aparece, mas BD continua online RRS feed

  • Pergunta

  • Olá,

    Estou com um sério problema e não sei como resolve-lo, por favor me ajudem.

    Preciso alterar a estrutura de uma tabela em determinado BD,  foi então que começou a surgir erros de que o owner não tinha permissão para tal modificação (estou logada com sa) ai pensei ok vamos ver as propriedades do BD e para minha surpresa ao clicar em propriedade do BD aparece a mensagem: 

    TÍTULO: Microsoft SQL Server Management Studio
    ------------------------------
    Não é possível mostrar a caixa de diálogo solicitada.
    ------------------------------
    INFORMAÇÕES ADICIONAIS:
    Não é possível mostrar a caixa de diálogo solicitada. (SqlMgmt)
    ------------------------------
    A propriedade Owner não está disponível para Banco de dados '[ControleTI]'. Talvez essa propriedade não exista para esse objeto ou não seja possível recuperá-la devido a direitos insuficientes de acesso.  (Microsoft.SqlServer.Smo)

    Então executei o comando abaixo para forçar a exibição do owner e posteriormente eu poder alterar, mas para minha surpresa ele não mostra o BD (mas ele esta ativo e as aplicações que conectam-se a ele estão funcionando perfeitamente, sem lentidões ou erros).

    use master
    go
    SELECT databases.NAME as Banco,
    server_Principals.NAME as Owner
    FROM sys.[databases]
    INNER JOIN sys.[server_principals] ON [databases].owner_sid = [server_principals].sid

    Se eu restaurar o BD no banco de teste o mesmo aparece com o script acima. Será que a unica solução que tenho é recriar este BD?

    quarta-feira, 21 de novembro de 2012 18:05

Respostas

  • Neia,

    acredito que como você faz um inner join ele não vai trazer os bancos sem o owner definido,

    tente executar o script abaixo, ele deve definir o owner do banco como o usuário sa.

    use [seu banco]
    GO
    sp_changedbowner 'sa'


    [ ]´s,
    Lukas Baldan

    • Marcado como Resposta Neia_S sexta-feira, 23 de novembro de 2012 14:10
    quinta-feira, 22 de novembro de 2012 10:48

Todas as Respostas

  • Neia,

    acredito que como você faz um inner join ele não vai trazer os bancos sem o owner definido,

    tente executar o script abaixo, ele deve definir o owner do banco como o usuário sa.

    use [seu banco]
    GO
    sp_changedbowner 'sa'


    [ ]´s,
    Lukas Baldan

    • Marcado como Resposta Neia_S sexta-feira, 23 de novembro de 2012 14:10
    quinta-feira, 22 de novembro de 2012 10:48
  • Neia,

    Concordo com a observação do Lukas Baldan e também com a sugestão de utilizando o comando SP_Changedbowner.

    Outra possibilidade seria utilizar o comando Alter Authorization.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quinta-feira, 22 de novembro de 2012 16:17
    Moderador
  • Muito amigo resolvi com essa dica, Vlw.
    terça-feira, 13 de janeiro de 2015 20:30