Вы не сможете обойти эту ошибку разрешений, если не предоставите право выбора в таблицах L_PagePermission
и A_Permission
для имени входа, которое вы используете для подключения к базе данных, или если вы не используете другой логин, который уже имеет выборочный доступ к этим таблицам.
Другой подход заключается в написании новой хранимой процедуры и предоставлении доступа EXECUTE к этой хранимой процедуре. SQL для предоставления разрешений в любом случае прост:
Чтобы предоставить SELECT доступ к таблице:
GRANT SELECT ON [TableName] TO [loginName]
Чтобы предоставить EXECUTE доступ к хранимой процедуре:
GRANT EXECUTE ON [procedureName] TO [loginName]
Еще один подход, который может сработать, но имеет очевидные последствия для безопасности, - это добавить имя входа, которое вы используете, в роль db_owner для этой базы данных. Это должно работать, но НЕ рекомендуется, если вы не знакомы с угрозами безопасности, которые представляют.