Usuário com melhor resposta
Mapeamentos do [sa]

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
- :)
- Editado Renato Siqueira segunda-feira, 30 de setembro de 2013 18:32 Mais informação
- Sugerido como Resposta Renato Siqueira segunda-feira, 30 de setembro de 2013 19:04
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator domingo, 22 de dezembro de 2019 14:56
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
- :)
- Editado Renato Siqueira segunda-feira, 30 de setembro de 2013 18:32 Mais informação
- Sugerido como Resposta Renato Siqueira segunda-feira, 30 de setembro de 2013 19:04
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator domingo, 22 de dezembro de 2019 14:56
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