J'ai une base de données de test avec laquelle j'ai des problèmes d'autorisations.
Je ne peux pas accéder à la base de données de rapports, et la documentation d'aide de l'application indique de procéder comme suit:
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.
Lorsque je fais cela, j'obtiens l'erreur suivante:
"Create failed for user '<servername>\<username>'. User, group, or role '<servername>\<username>' already exists in the current database. (Microsoft SQL Server, Error: 15023)"
J'ai googlé cette erreur et essayé la commande suivante sur chaque base de données:
ALTER USER [<username>] WITH LOGIN = [<username>]
Le message indique que les commandes se sont terminées avec succès, mais j'obtiens toujours l'erreur ci-dessus lorsque j'essaie de mapper chaque base de données comme indiqué ci-dessus.
Qu'est-ce que je rate?
Selon le commentaire de Kin (merci), j'ai essayé ceci: - J'ai cliqué avec le bouton droit sur l'utilisateur et sélectionné: Connexion au script en tant que> Déposer et créer vers> Nouvelle fenêtre de requête. - J'ai exécuté la requête résultante et j'ai essayé de mapper les rôles utilisateur en sélectionnant à nouveau les deux autres bases de données et db_owner, mais je reçois toujours le même message d'erreur que ci-dessus.
Pensées??
J'utilise Auto_Fix avec
sp_change_users_login
dans mon environnement de développement pour résoudre ces problèmes (erreur 15023). Évitez d'utiliser Auto_Fix dans des situations sensibles à la sécurité.Notez également que cette fonctionnalité peut être supprimée dans une future version de Microsoft SQL Server.
Autres références:
la source
Est la bonne approche.
Sinon, allez à:
Sécurité> Connexions> (votre nom d'utilisateur)> Propriétés> Mappage utilisateur
et remappez cet utilisateur à la base de données souhaitée.
Vous pouvez utiliser la requête suivante dans le contexte de votre base de données pour rechercher des orphelins:
la source
accédez à la base de données principale et supprimez l'utilisateur
la source