Вы можете создать схему для синонима (например, «EntityFramework» или «EF» для простоты). Создайте роль для своей схемы, называя ее чем-то вроде «EntityFrameworkUser».
Теперь есть два пути, здесь - это первый, если у вас только есть доступ к SELECT, или второй, если вам также может понадобиться доступ EXECUTE.
ПЕРВЫЙ:
Зайдя в свойства вашей EntityFramework схемы, вы можете перейти к Права доступа, поиска и добавить EntityFrameworkUser роль и чек только ВЫБРАТЬ в списке разрешений ниже.
ВТОРОЙ:
Зайдя в свойство вашей EntityFrameworkUser роли, вы можете перейти к защищаемому, перейдите в разделе «Поиск ...» для защищаемых, используйте «Все объекты, принадлежащие к схеме» с вашей EntityFramework схемой.
Для каждого из объектов, отображаемых в результате, которые должны быть просто синонимами (если только вы не создали новые таблицы/СП в схеме «EntityFramework»), вы можете предоставить доступ к «Выбрать» и оставить все остальное если вы не хотите, чтобы пользователь имел больше или меньше мощности с этими объектами.
НЕЗАВИСИМО:
Это позволит вам иметь видимость таблицы без записи/выполнения доступа. Назначьте, какой пользователь сервера нуждается в этом доступном для чтения, и добавьте его в роль «EntityFrameworkUser». В моем случае есть пользователь «WebApplication» и «DesktopApplication», оба из которых назначены роли «EntityFrameworkUser».
Это должно решить вашу проблему visiblity, ограничивая доступ к записи и выполнению в системе.
Как насчет просмотра только для чтения? –
У нас есть внешние ключи и т. Д., Я не думаю, что это возможность. –
Что иностранные ключи имеют к этому отношение? Вы можете создать представление из каждого 'select'. –