J'essaie d'ajouter des autorisations à une procédure de stockage pour un utilisateur utilisant cette requête,
USE [MyDatabaseName]
GO
GRANT EXEC ON [dbo].[StoreProcedureName] TO [UserName]
GO
Je peux donner des autorisations à l'utilisateur via l'interface utilisateur mais en utilisant cette requête, j'obtiens cette erreur,
Impossible de trouver l'utilisateur 'UserName', car il n'existe pas ou vous ne disposez pas de l'autorisation.
Si je n'ai pas d'autorisations, comment puis-je ajouter des autorisations à l'aide de l'interface utilisateur.
Je viens de rencontrer le même problème.
Assurez-vous qu'il existe un mappage utilisateur pour votre connexion dans la table principale. Aucune appartenance à un rôle de base de données n'est requise, il suffit de cocher "Carte" pour le maître de base de données sous "Mappage d'utilisateur" dans les propriétés de la connexion "Nom d'utilisateur".
Lance ça:
USE [db_where_you_need_access]
GO
CREATE USER [your_user] FOR LOGIN [your_user]
J'ai eu ce problème et pourtant je fais partie du groupe d'administrateurs local sur le serveur. Apparemment, si l'UAC est activé, l'exécution de SQL Server Management Studio en tant qu'administrateur fait toute la différence. Je n'avais aucune autorisation jusqu'à ce que je fasse cela.
Vous pouvez obtenir des problèmes comme celui-ci lorsqu'une base de données a été restaurée à partir d'un autre serveur et que le GUID de l'utilisateur dans la base de données est différent de celui du serveur actuel.
Cela permettra de relier les utilisateurs orphelins:
USE <database_name>;
GO
sp_change_users_login @Action='update_one', @UserNamePattern='<database_user>',
@LoginName='<login_name>';
GO
à part cela, si l'utilisateur existe et que vous disposez des droits de sécurité appropriés, il n'y a aucune raison pour que ce que vous faites ne fonctionne pas.