Вы должны назначить пользователю db_datareader
& db_datawriter
ролей для схемы dbo
.
Однако, чтобы позволить пользователю создавать и изменять только новые таблицы; вам придется создать другую схему и назначить, например, db_owner
разрешения для этой схемы.
Вы должны знать, что это может создать проблемы, так как вы можете иметь две таблицы с одинаковым именем в разных схемах. Поэтому вы должны убедиться, что ваши запросы всегда указывают владельца объекта.
например.
dbo.MyTable
CustomSchema.MyTable
UPDATE:
Хорошо, я думаю, что это шаги, которые необходимо предпринять:
- Создать новую базу данных Роль и
db_ReportingRole
например добавить соответствующего пользователя к этой роли.
- Создайте новую схему, например
Reporting
, и сделайте db_ReportingRole
обладателем этой схемы.
- Присвоить соответствующий
CREATE
, DROP
и т.д. разрешения на db_ReportingRole
- Убедитесь, что тот же пользователь добавил ранее находится в
db_datareader
и db_datawriter
ролей для dbo
схемы.
Это должно затем позволить вам иметь пользователь, который может читать и писать в dbo
схеме, но должны быть в состоянии изменять таблицы и т.д. Тем не менее, потому что они в db_ReportingRole
они должны иметь полный доступ к модифицировать, создавать, удалять etc в схеме Reporting
. (При условии, что вы назначили правильные разрешения на db_ReportingRole
Я надеюсь, что это работает для вас.
Спасибо за ваш ответ. Как я позволяю пользователю использовать новую схему? Имеет ли я просто изменить схему по умолчанию к новой схеме или я делаю владельца пользователя новой схемы? – karl
Когда я создаю новую схему и пытаюсь добавить разрешения. Я не могу найти роль базы данных db_owner – karl
Привет, Karl, это может помочь вам, когда пытается присвоить разрешения. http://msdn.microsoft.com/en-us/library/ms187940.aspx – codingbadger