Пользовательские разрешения SQL Server 2005 - PullRequest
1 голос
/ 17 мая 2010

Я создал базу данных и некоторые dbo.tables. Теперь я хочу создать пользователя, который может читать и писать в эти таблицы, но не изменять и не удалять. Однако я хочу, чтобы этот пользователь мог создавать собственные таблицы и позволять ему делать с ними то, что он хочет.

Возможно ли это? Может ли кто-нибудь объяснить, как это можно сделать?

1 Ответ

3 голосов
/ 17 мая 2010

Вы можете назначить пользователю роли db_datareader & db_datawriter для схемы dbo.

Однако, чтобы позволить пользователю создавать и изменять только новые таблицы; вам придется создать другую схему и назначить, например, db_owner разрешения для этой схемы.

Вы должны знать, что это может создать проблемы, поскольку у вас могут быть две таблицы с одинаковыми именами в разных схемах. Поэтому вы должны убедиться, что в ваших запросах всегда указывается владелец объекта.

, например

dbo.MyTable

CustomSchema.MyTable

UPDATE:

Хорошо, я думаю, что вам нужно предпринять следующие шаги:

  1. Создайте новую роль базы данных, например, db_ReportingRole и добавьте в эту роль соответствующего пользователя.
  2. Создайте новую схему, например, Reporting и сделайте db_ReportingRole владельцем этой схемы.
  3. Назначьте соответствующие разрешения CREATE, DROP и т. Д. Для db_ReportingRole
  4. Убедитесь, что тот же пользователь, который был добавлен ранее, входит в роли db_datareader и db_datawriter для схемы dbo.

Это должно позволить вам иметь пользователя, который может читать и писать в схему dbo, но должен иметь возможность изменять таблицы и т. Д. Однако, поскольку они в db_ReportingRole должны иметь полный доступ для изменения, создания, сбросить таблицу etc в схеме Reporting. (При условии, что вы назначили правильные разрешения для db_ReportingRole

Я надеюсь, что это работает для вас.

...