AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 56011
Accepted
brl8
brl8
Asked: 2014-01-03 10:30:09 +0800 CST2014-01-03 10:30:09 +0800 CST 2014-01-03 10:30:09 +0800 CST

Erro do SQL Server 2008 R2: 15023, usuário, grupo ou função já existe

  • 772

Eu tenho um banco de dados de teste com o qual estou tendo problemas de permissão.
Não consigo acessar o banco de dados de relatórios e a documentação de ajuda do aplicativo diz para fazer o seguinte:

Resolution: 

1. Launch the SQL Server Management Studio and connect to the database server(s) hosting   the Vision and Reporting Server databases. 
2. Expand the security folder. 
3. Select logins and right click on the <username> user and choose properties. 
4. Click the User Mapping tab 
5.Make sure the following databases are selected in the Users mapped to this Login:

    ReportServer
    ReportServerTempDB
    Your Vision databases
    This maps the login/user to the respective databases.
6. As you select each database (including your Vision database), select the db_owner role in the Database role membership for: section. You must select this option for each database.

Quando faço isso, recebo o seguinte erro:

"Create failed for user '<servername>\<username>'.  User, group, or role '<servername>\<username>' already exists in the current database. (Microsoft SQL Server, Error: 15023)"

Eu pesquisei esse erro e tentei o seguinte comando em cada banco de dados:

 ALTER USER [<username>] WITH LOGIN = [<username>] 

A mensagem indicou que os comandos foram concluídos com êxito, mas ainda estou recebendo o erro acima quando tento mapear cada banco de dados conforme as instruções acima.

o que estou perdendo?

Por comentário de Kin (obrigado) eu tentei isso: - Cliquei com o botão direito do mouse no usuário e selecionei: Script Login As > Drop and Create To > New query window. - Executei a consulta resultante e tentei mapear as funções de usuário selecionando os outros dois bancos de dados e db_owner novamente, mas ainda estou recebendo a mesma mensagem de erro acima.

Pensamentos??

sql-server sql-server-2008-r2
  • 4 4 respostas
  • 62850 Views

4 respostas

  • Voted
  1. Best Answer
    Cougar9000
    2014-01-04T12:56:14+08:002014-01-04T12:56:14+08:00

    Há várias coisas que você pode tentar, e o sucesso de cada uma provavelmente dependerá de qual função de servidor você possui.

    Para começar, se for apenas um ou dois usuários, honestamente, a maneira mais fácil é descartar o usuário do banco de dados do banco de dados restaurado e, desde que já exista um login de servidor existente, remapear o usuário do banco de dados para o login do servidor usando o SSMS. Se o login do servidor não existir, basta criá-lo, mapear o usuário e pronto! Lá vamos nós.

    Próxima opção: se você estiver migrando um grande número de usuários, use sp_help_revlogin. sp_help_revlogin é um procedimento armazenado fornecido pela Microsoft que ajudará a migrar logons de um servidor para outro, incluindo senhas e SIDs. Aqui está um bom artigo sobre isso SP_HELP_REVLOGIN

    • 12
  2. LCJ
    2017-08-04T09:08:02+08:002017-08-04T09:08:02+08:00

    Eu uso Auto_Fix no sp_change_users_loginmeu ambiente de desenvolvimento para corrigir esses problemas (Erro 15023). Evite usar Auto_Fix em situações de segurança.

    Auto_Fix: vincula uma entrada de usuário na exibição do catálogo do sistema sys.database_principals no banco de dados atual a um logon do SQL Server com o mesmo nome. Se não existir um login com o mesmo nome, será criado um. Examine o resultado da instrução Auto_Fix para confirmar se o link correto foi feito de fato. Evite usar Auto_Fix em situações de segurança.

    sp_change_users_login 'AUTO_FIX', 'myuser'
    

    Além disso, observe que esse recurso pode ser removido em uma versão futura do Microsoft SQL Server.

    Outras referências:

    1. O usuário, grupo ou função do SQL Server 2008 já existe no banco de dados atual
    2. CORREÇÃO: Erro 15023: o usuário já existe nos bancos de dados atuais
    3. SQL mapeia um login para um usuário existente
    • 3
  3. Francesco Mantovani
    2018-11-28T18:19:38+08:002018-11-28T18:19:38+08:00
    ALTER USER [<username>] WITH LOGIN=[<username>]
    

    É a abordagem certa.

    Caso contrário, acesse:

    Segurança > Logins > (seu nome de usuário) > Propriedades > Mapeamento de usuários

    insira a descrição da imagem aqui

    e remapear esse usuário para o banco de dados desejado.

    Você pode usar a seguinte consulta no contexto de seu banco de dados para verificar se há órfãos:

    select
        dp.name [user_name]
        ,dp.type_desc [user_type]
        ,isnull(sp.name,'Orhphaned!') [login_name]
        ,sp.type_desc [login_type]
    from   
        sys.database_principals dp
        left join sys.server_principals sp on (dp.sid = sp.sid)
    where
        dp.type in ('S','U','G')
        and dp.principal_id >4
    order by sp.name
    
    • 0
  4. user84866
    2016-01-19T00:09:00+08:002016-01-19T00:09:00+08:00

    vá para o banco de dados mestre e exclua o usuário

    • -4

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve