我有一個驗證調用者是否被授權調用這個存儲過程給定PARAMS一個存儲過程。如果主叫方未被授權,我想RAISERROR
與訪問被拒絕的錯誤號碼。現在,它不能是錯誤號10011(ACCESS在sys.messages拒絕),因爲錯誤號必須大於50000更大,我不想使用存儲過程sp_addmessage
添加相同消息(英文和本地化的文本以及)剛重新創建相同的ACCESS DENIED錯誤。什麼是正確的方法來做到這一點?RAISERROR來表示拒絕訪問錯誤
編輯:,因爲所需的SQL代碼應該是與SQL Azure的兼容,最後我打電話RAISERROR
沒有錯誤號和後面的代碼檢查默認的50000錯誤代碼(在SQL Azure中目前尚沒有支持sp_addmessage
和sys.messages
)。
這將產生以下迷惑紅鯡魚錯誤消息:「System.Data.SqlClient.SqlException:的SELECT權限被拒絕對象‘AccessDeniedTable’,數據庫‘富’,架構‘DBO’上。」根本不可取。 – kateroh
@kateroh,使用這個想法,但將'select ...'改爲任何會導致您預期的系統消息。 –