Wednesday, October 6, 2010

[MSSQL] GRANT 發生 Error Msg 15151

今天友人問我一個問題,他在MSSQL上要做給予使用者某個table的select權限,結果發生了錯誤,SQL語法大致如下。

GRANT SELECT on [MyDB].dbo.[MyTable] to [MyUser];

但是出現了如下的錯誤。

中文
訊息 15151,層級 16,狀態 1,行 1
無法 尋找 使用者 'MyUser',因為它不存在或您沒有權限。

英文

Msg 15151, Level 16, State 1, Line 1
Cannot find the user 'MyUser', because it does not exist or you do not have permission.

而友人確定這個使用者是存在的,執行時是用sa去執行,應該也沒有權限的問題,所以就換我來試了XD


找了一下,發現應該是在建帳號或是建DB時,沒有將MyUser這個帳號指給MyDB這個資料庫,所以在GRANT的時候會找不到,使用

SELECT [name] FROM sys.sysusers;
可以確認使用者存不存在於該資料庫。

既然發現是這個問題,只要在MyDB上把使用者建出來就好了。
CREATE USER MyUser;

收工。

No comments:

Post a Comment