今天友人問我一個問題,他在MSSQL上要做給予使用者某個table的select權限,結果發生了錯誤,SQL語法大致如下。
但是出現了如下的錯誤。
中文
既然發現是這個問題,只要在MyDB上把使用者建出來就好了。
收工。
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