Cannot find the user '', because it does not exist or you do not have permission

后端 未结 5 395
执笔经年
执笔经年 2020-12-29 20:47

I am trying to add permissions to a Store procedure for a user using this query,

USE [MyDatabaseName]
GO

GRANT EXEC ON [dbo].[StoreProcedureName] TO [UserNa         


        
相关标签:
5条回答
  • 2020-12-29 21:27

    You can get problems like this when a database has been restored from another server and the GUID of the user in the database is different from that of the current server.

    This will re-link orphaned users:

    USE <database_name>;
    GO
    sp_change_users_login @Action='update_one', @UserNamePattern='<database_user>', 
       @LoginName='<login_name>';
    GO
    

    other than this, if the user exists and you have the relevant security rights, there is no reason what you doing wouldn't work.

    0 讨论(0)
  • 2020-12-29 21:30

    I had this issue and yet I am in the local admin group on the server. Apparently if UAC is turned onrunning SQL Server Management Studio as administrator makes a world of difference. I didn't have any permissions until I did this.

    0 讨论(0)
  • 2020-12-29 21:35

    A bit of a daft one, but make sure your UserName is spelt correctly in the GRANT statement. I spent half an hour trying to figure out what the cause of this error was and it was simply a typo on my part!

    0 讨论(0)
  • 2020-12-29 21:36

    I just encountered the same problem.

    Make sure there is an user mapping for your login in the master table. No database role memberships are required, just tick 'Map' for the database master under 'User Mapping' in the properties for the login 'UserName'.

    0 讨论(0)
  • 2020-12-29 21:43

    Run this:

    USE [db_where_you_need_access]
    GO
    CREATE USER [your_user] FOR LOGIN [your_user]
    
    0 讨论(0)
提交回复
热议问题