발신자가 주어진 params로이 sproc을 호출 할 권한이 있는지를 확인하는 sproc가 있습니다. 발신자가 승인되지 않은 경우 RAISERROR
에 ACCESS DENIED 오류 번호가 표시됩니다. 오류 번호가 50000보다 커야하기 때문에 오류 번호 10011 (sys.messages에서 거부 됨)이 될 수 없습니다. sp_addmessage
sproc을 사용하여 동일한 메시지 (영어 및 지역화 된 텍스트도 추가하고 싶지 않음)를 추가하고 싶지 않습니다. 동일한 ACCESS DENIED 오류를 다시 작성하십시오. 이 작업을 수행하는 올바른 방법은 무엇입니까?RAISERROR를 사용하여 ACCESS DENIED 오류를 나타냅니다.
편집 : 필요한 SQL 코드가 SQL 애저와 호환 있어야 이후, 나는 오류 번호 RAISERROR
를 호출하고 뒤에 코드에서 기본 50,000 오류 코드를 검사 결국는 (SQL 애저 현재에 대한 지원이 없다 sp_addmessage
및 sys.messages
).
이렇게하면 "System.Data.SqlClient.SqlException : SELECT 권한이 'AccessDeniedTable'데이터베이스 'FOO', 스키마 'dbo'에 대해 거부되었습니다."라는 잘못된 청어 오류 메시지가 표시됩니다. 전혀 바람직하지 않다. – kateroh
@kateroh,이 아이디어를 사용하시오. 그러나'select ... '를 의도 한 시스템 메시지를 일으키는 것으로 변경하십시오. –