locked
Mapeamentos do [sa] RRS feed

  • Pergunta

  • Pessoal, estou tendo dificuldades em acertar os mapeamentos pelo usuário [sa] no SQL Server 2008 Enterprise.

    Precisei migrar de servidores e fiz o procedimento de instalação normalmente com o Attach... das bases.

    Todas as bases que tem seus usuários próprios, não tive problemas, mas uma das bases usa o [sa] para autenticar na base e na guia Logins dessa base em questão (Syspar), não existe o usuário [sa], quando tendo adicioná-lo, o seguinte erro é gerado:

    Tentei alterar os mapeamentos dos bancos na Guia Security da Instância para este usuário, mas o mesmo erro é gerado para qualquer alteração que eu venha a fazer.

    Já tentei rodar uma Query com a instrução abaixo, mas sem sucesso. Alguma dica?

    '

    use Syspar exec sp_changedbowner 'sa','true'

    '


    Tedy006 - Espero ter ajudado ou pelo menos tentado.

    sexta-feira, 27 de setembro de 2013 16:11

Respostas

  • Tedy,

    Executando a instrução acima em todos os bancos (com o USE antecedendo o comando) você estaria alterando o dono da base para o sa. Essa é a intenção? Se sim, o comando está correto.

    Pergunta... O login sa supostamente deveria estar mapeado para o usuário dbo. Só pra confirmar, pode conferir por gentileza, se o banco Syspar aparece na listagem?

    exec sp_MSloginmappings 'sa'

    Pode informar se o UserName é o dbo? Se sim, o sa está corretamente mapeado na sua base, com o usuário apropriado (dbo).

    Você está tentando criar um usuário para o sa? Tipo, qualquer tentativa de criar um usuário para o login sa dará erro, resultando neste erro 15405.

    Por exemplo, comandos como

    CREATE USER lola FOR LOGIN sa
    --ou
    CREATE USER sa FOR LOGIN sa
    darão o mesmo erro.

    []'s
     


    - :)


    segunda-feira, 30 de setembro de 2013 18:31

Todas as Respostas

  • Bom dia Tedy,

    Dois passos importantíssimos para resolver o problema:

    1) Qual o modo de autenticação da instância?

    Se for Windows Authentication, realmente, o problema procede. Se o ambiente permitir, mude o modo de autenticação para Mixed Mode. A alteração é feita em Properties > Security e altere para SQL Server and Windows Authentication (isso se já não estiver assim)

    2) O sa está habilitado?

    O login existe? Está habilitado? Se não, vale a pena habilitar:

    ALTER LOGIN sa  ENABLE 
    

    Quando você alterar o owner, não deve ter problemas depois de seguir os passos acima.

    Nos comunique por favor se a solução te atendeu.

    []'s


    - :)

    segunda-feira, 30 de setembro de 2013 12:54
  • Sim, o ambiente já está correndo em "SQL Server and Windows Authentication mode"

    Sim, o "sa", existe e está habilitado. Ele não existe no vínculo do Banco Syspar.

    O procedimento para alterar owner foi feito, mas o usuários "sa" não é vinculado ao banco Syspar no caso. Sabe me dizer se tenho que executar a instrução que mencionei em todos os bancos?


    Tedy006 - Espero ter ajudado ou pelo menos tentado.

    segunda-feira, 30 de setembro de 2013 14:09
  • Tedy,

    Executando a instrução acima em todos os bancos (com o USE antecedendo o comando) você estaria alterando o dono da base para o sa. Essa é a intenção? Se sim, o comando está correto.

    Pergunta... O login sa supostamente deveria estar mapeado para o usuário dbo. Só pra confirmar, pode conferir por gentileza, se o banco Syspar aparece na listagem?

    exec sp_MSloginmappings 'sa'

    Pode informar se o UserName é o dbo? Se sim, o sa está corretamente mapeado na sua base, com o usuário apropriado (dbo).

    Você está tentando criar um usuário para o sa? Tipo, qualquer tentativa de criar um usuário para o login sa dará erro, resultando neste erro 15405.

    Por exemplo, comandos como

    CREATE USER lola FOR LOGIN sa
    --ou
    CREATE USER sa FOR LOGIN sa
    darão o mesmo erro.

    []'s
     


    - :)


    segunda-feira, 30 de setembro de 2013 18:31
  • Executando a instrução acima em todos os bancos (com o USE antecedendo o comando) você estaria alterando o dono da base para o sa. Essa é a intenção? 

    Não, a intenção é fazer com que os clientes consigam acessar o banco através da aplicação que logo dentro do banco com o usuário "sa", mas para tentar corrigir o erro que mencionei neste post, executei a instrução em todos os bancos.

    Pergunta... O login sa supostamente deveria estar mapeado para o usuário dbo. Só pra confirmar, pode conferir por gentileza, se o banco Syspar aparece na listagem?

    Sim, ele aparece na listagem.

    Pode informar se o UserName é o dbo? Se sim, o sa está corretamente mapeado na sua base, com o usuário apropriado (dbo).

    Sim. Com a instrução que pediu para eu executar, notei que em todos os bancos o LoginName [sa] tem como UserName [dbo].

    Você está tentando criar um usuário para o sa? Tipo, qualquer tentativa de criar um usuário para ologin sa dará erro, resultando neste erro 15405.

    Sim, toda tentativa gera o erro:

    "Msg 15405, Level 16, State 1, Line 1

    Cannot use the special principal 'sa'-"



    Tedy006 - Espero ter ajudado ou pelo menos tentado.

    • Sugerido como Resposta Renato Siqueira quarta-feira, 9 de outubro de 2013 13:29
    quarta-feira, 2 de outubro de 2013 15:16