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 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 no Google e tentei o seguinte comando em cada banco de dados:
ALTER USER [<username>] WITH LOGIN = [<username>]
A mensagem indicava 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?
Pelo comentário de Kin (obrigado), tentei o seguinte: - 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 o db_owner novamente, mas ainda estou recebendo a mesma mensagem de erro acima.
Pensamentos??
Eu uso Auto_Fix com
sp_change_users_login
no meu ambiente dev para corrigir tais problemas (erro 15023). Evite usar o Auto_Fix em situações sensíveis à segurança.Além disso, observe que esse recurso pode ser removido em uma versão futura do Microsoft SQL Server.
Outras referências:
fonte
É a abordagem correta.
Caso contrário, vá para:
Segurança> Logins> (seu nome de usuário)> Propriedades> Mapeamento de Usuário
e remapear esse usuário para o banco de dados desejado.
Você pode usar a seguinte consulta no contexto do seu banco de dados para verificar se há órfãos:
fonte
acesse o banco de dados mestre e exclua o usuário
fonte