2013-04-16 68 views
20

我試圖權限添加到一個存儲過程使用該查詢的用戶權限,找不到用戶',因爲它不存在,或者你沒有

USE [MyDatabaseName] 
GO 

GRANT EXEC ON [dbo].[StoreProcedureName] TO [UserName] 
GO 

我可以給權限用戶通過theUser接口但使用此查詢我得到這個錯誤,

無法找到用戶的「用戶名」,因爲它不存在,或者您沒有權限 。

如果我沒有權限,那我該如何使用用戶界面添加權限。

+0

你確定用戶名存在?如果它是一個Windows帳戶,也會預先添加域名。 – Ulises

+0

我做了它,是的我的用戶用這個名字確實存在.. – Mathematics

+0

錯誤信息是不言自明的 - 你作爲系統管理員或dbo連接?用戶名不正確,或者您沒有足夠的權限。 –

回答

32

我剛剛遇到同樣的問題。

確保在主表中有登錄用戶映射。不需要數據庫角色成員身份,只需在登錄名'UserName'的屬性的'用戶映射'下爲數據庫主文件勾選'映射'即可。

0

從其他服務器恢復數據庫並且數據庫中用戶的GUID與當前服務器的GUID不同時,您可能會遇到類似問題。

這將重新鏈接配對的用戶:

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

除此之外,如果用戶存在,並且您有相關的安全權限,沒有任何理由,你做的事情是行不通的。

2

我有這個問題,但我在服務器上的本地管理員組。顯然,如果UAC以管理員身份運行SQL Server Management Studio,將會產生一個不同的世界。我沒有任何權限,直到我做到這一點。

2

運行以下命令:

USE [db_where_you_need_access] 
GO 
CREATE USER [your_user] FOR LOGIN [your_user] 
相關問題