none
Problema de permissão no SQL Server RRS feed

  • Pergunta

  • Olá a todos, recentemente eu criei um novo usuário para meu note, antes disso era apenas um usuário  e rodava o sql server normalmente, agora estou nesse novo usuário e quando tento usar o sql server (por exemplo dar um create database) ele diz que "Permissão CREATE DATABASE negada no banco de dados 'master'., ja fui na propiedade do banco e ao tentar conceder permissao aparece: grant falhou para Servidor'DESKTOP-HUGO'- : " Concessor nao tem a permissao GRANT (Erro 4613)", e agora não sei  o que fazer e onde ir para esse novo usuário ter plenos poderes, se alguem puder ajudar agradeço.
    E pelo que parece esse usuário novo ja é administrador, tanto é que executo o sql server como administrador.
    • Editado Hugo010 quarta-feira, 18 de setembro de 2019 17:19
    quarta-feira, 18 de setembro de 2019 17:18

Respostas

  • Olá amigão,

    os comandos que o Junior passou é para você executar usando o Management Studio / New querie. 

    Ao que me parece você esta logando com o usuário do windows direto no Sql Server , mas, este user não tem permssões. 

    você pode executar o comando abaixo , usando o Management Studio e ver as permissões que o user tem. Você pode até colocar o resultado da query aqui.

    select  princ.name
    ,       princ.type_desc
    ,       perm.permission_name
    ,       perm.state_desc
    ,       perm.class_desc
    ,       object_name(perm.major_id)
    from    sys.database_principals princ
    left join
            sys.database_permissions perm
    on      perm.grantee_principal_id = princ.principal_id

    Agora , o ideal seria você usar o outro usuário que me parece ter permissão de sysadmin e logar na Instacia e dar permissão para o seu usuário novo. 

    Mais uma opção seria você logar com um login do Sql Server que tenha permissão alta (sysadmin), talvez o próprio sa e dar permissão para o seu user poder fazer as coisas que necessita no(s) BD(s)

     


    Se esta resposta lhe ajudou, marque-a como útil para que outra pessoa com dúvida ou problema semelhante possa encontrar resposta ou ajuda mais facilmente. * Jefferson Clyton Pereira da Silva - [ MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    quarta-feira, 18 de setembro de 2019 23:42
  • Acabei resolvendo seguindo as instruções do site sqlauthority (sql-server-add-any-user-to-sysadmin-role-add-users-to-system-roles)

    quinta-feira, 19 de setembro de 2019 22:30
  • Hugo,

    A orientação do Alex é o passo inicial, basicamente você vai adicionar esta novo usuário a Server Role, sp_addsrvrolemember.

    Veja o exemplo abaixo:

    EXEC sp_addsrvrolemember 'SeuNovoUsuario','dbcreator'
    Go

    Não se esqueça também de conceber a permissão Grant Create Any Database:

    GRANT CREATE ANY DATABASE TO InformeONomeDoSeuLogin
    Go


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    quarta-feira, 18 de setembro de 2019 18:49
    Moderador

Todas as Respostas

  • Olá Hugo,

      o ideal seria você fazer login com o usuário antigo e através dele conceder permissão para este novo usuário recém criado.

    Att.

    Alex

    quarta-feira, 18 de setembro de 2019 18:19
  • Hugo,

    A orientação do Alex é o passo inicial, basicamente você vai adicionar esta novo usuário a Server Role, sp_addsrvrolemember.

    Veja o exemplo abaixo:

    EXEC sp_addsrvrolemember 'SeuNovoUsuario','dbcreator'
    Go

    Não se esqueça também de conceber a permissão Grant Create Any Database:

    GRANT CREATE ANY DATABASE TO InformeONomeDoSeuLogin
    Go


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    quarta-feira, 18 de setembro de 2019 18:49
    Moderador
  • Olá Alex, entrei na outra conta e lá diz que o novo usuário tem privilegios de administrador, então não sei o que faço

    Olá Junior, onde que eu escrevo esses comandos?

    quarta-feira, 18 de setembro de 2019 23:08
  • Olá amigão,

    os comandos que o Junior passou é para você executar usando o Management Studio / New querie. 

    Ao que me parece você esta logando com o usuário do windows direto no Sql Server , mas, este user não tem permssões. 

    você pode executar o comando abaixo , usando o Management Studio e ver as permissões que o user tem. Você pode até colocar o resultado da query aqui.

    select  princ.name
    ,       princ.type_desc
    ,       perm.permission_name
    ,       perm.state_desc
    ,       perm.class_desc
    ,       object_name(perm.major_id)
    from    sys.database_principals princ
    left join
            sys.database_permissions perm
    on      perm.grantee_principal_id = princ.principal_id

    Agora , o ideal seria você usar o outro usuário que me parece ter permissão de sysadmin e logar na Instacia e dar permissão para o seu usuário novo. 

    Mais uma opção seria você logar com um login do Sql Server que tenha permissão alta (sysadmin), talvez o próprio sa e dar permissão para o seu user poder fazer as coisas que necessita no(s) BD(s)

     


    Se esta resposta lhe ajudou, marque-a como útil para que outra pessoa com dúvida ou problema semelhante possa encontrar resposta ou ajuda mais facilmente. * Jefferson Clyton Pereira da Silva - [ MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    quarta-feira, 18 de setembro de 2019 23:42
  • Olá!

    Então, eu digitei os comandos sugeridos pelo Junior e apareceu isso: (Executei na conta antiga, que tem privilegios de admin)

    Msg 15007, Nível 16, Estado 1, Procedimento sp_addsrvrolemember, Linha 33 [Linha de Início do Lote 0]
    'NovoUsuario' não é um logon válido ou você não tem permissão.

    Jefferson, digitei seu comando (na conta antiga) e apareceu que tenho todos os direitos de admin.

    Eu fui em meu computador em configurações de usuário e diz que a conta nova tá como administrador , não entendo porque isso, porque se tivesse já teria criado o banco de dados sem problemas.

    quarta-feira, 18 de setembro de 2019 23:51
  • Hugo,

    Vamos por partes, você criou um login novo na máquina e não no SQL Server? É isso? Se for, então você poderá criar este novo login no SQL Server.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 19 de setembro de 2019 16:54
    Moderador
  • Acabei resolvendo seguindo as instruções do site sqlauthority (sql-server-add-any-user-to-sysadmin-role-add-users-to-system-roles)

    quinta-feira, 19 de setembro de 2019 22:30