我正在尝试为使用此查询的用户添加存储过程的权限,
USE [MyDatabaseName]
GO
GRANT EXEC ON [dbo].[StoreProcedureName] TO [UserName]
GO
我可以通过用户界面向用户授予权限,但使用此查询我收到此错误,
找不到用户“用户名”,因为它不存在或您没有权限。
如果我没有权限,那么如何使用用户界面添加权限。
我正在尝试为使用此查询的用户添加存储过程的权限,
USE [MyDatabaseName]
GO
GRANT EXEC ON [dbo].[StoreProcedureName] TO [UserName]
GO
我可以通过用户界面向用户授予权限,但使用此查询我收到此错误,
找不到用户“用户名”,因为它不存在或您没有权限。
如果我没有权限,那么如何使用用户界面添加权限。
我刚刚遇到了同样的问题。
确保主表中有您的登录名的用户映射。不需要数据库角色成员资格,只需在登录“用户名”的属性中的“用户映射”下为数据库主服务器勾选“映射”。
运行这个:
USE [db_where_you_need_access]
GO
CREATE USER [your_user] FOR LOGIN [your_user]
我遇到了这个问题,但我在服务器上的本地管理员组中。显然,如果打开 UAC,以管理员身份运行 SQL Server Management Studio 会大有不同。在我这样做之前,我没有任何权限。
当数据库已从另一台服务器恢复并且数据库中用户的 GUID 与当前服务器的 GUID 不同时,您可能会遇到此类问题。
这将重新链接孤立的用户:
USE <database_name>;
GO
sp_change_users_login @Action='update_one', @UserNamePattern='<database_user>',
@LoginName='<login_name>';
GO
除此之外,如果用户存在并且您拥有相关的安全权限,那么您所做的没有理由不起作用。
有点愚蠢,但请确保您在声明UserName
中的拼写正确。GRANT
我花了半个小时试图弄清楚这个错误的原因是什么,这只是我的一个错字!