SQL Server: разрешить пользователю создавать / изменять новые представления, но не изменять существующие

#sql-server #schema #roles #sql-server-2008-r2

#sql-server #схема #роли #sql-server-2008-r2

Вопрос:

Мы хотели бы разрешить пользователям создавать свои собственные пользовательские представления, но не хотим разрешать им изменять какие-либо существующие таблицы или представления. Я довольно новичок в отношении возможностей администрирования SQL Server, но я предполагаю, что это обычный сценарий.

Я думал, что лучшим способом сделать это было бы создать новую схему, содержащую эти представления, а затем только позволить пользователю контролировать эту схему. Разумно ли это?

Проблема в том, что я на самом деле не знаю, как это сделать. Я создал схему, и я попытался создать роль для этой схемы, но она не «щелкает» в моем сознании.

Комментарии:

1. Вероятно, не предназначен для обозначения sql-server-200

Ответ №1:

Я не уверен, какую версию SQL Server вы используете? Но в 2008 году откройте SQL Server Management Studio. Создайте новую процедуру и добавьте этот код:

ПРЕДОСТАВЬТЕ СОЗДАТЬ ПРЕДСТАВЛЕНИЕ В SCHEMA :: your_schema ДЛЯ user_role

Я думаю, что это должно сработать …? Я использую SQL Server только время от времени. Возможно, вам также придется предоставить им ALTER, SELECT и т.д.

Комментарии:

1. 2008 R2 Express, если быть точным… позвольте мне попробовать это

2. Согласно BOL, «Требуется разрешение на создание представления в базе данных и разрешение на изменение схемы, в которой создается представление. » — это разрешения, необходимые для создания представления.

3. Теперь все становится на свои места. Как указал Бен, я не смог заставить ‘CREATE VIEW’ работать на уровне схемы, но смог выяснить, что у нас есть два уровня для работы… База данных и схема. У меня работает простой пример, и я думаю, что я действительно могу понять, почему: p спасибо всем