2010-05-17 4 views
1

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

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

ответ

3

Вы должны назначить пользователю 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

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

+0

Спасибо за ваш ответ. Как я позволяю пользователю использовать новую схему? Имеет ли я просто изменить схему по умолчанию к новой схеме или я делаю владельца пользователя новой схемы? – karl

+0

Когда я создаю новую схему и пытаюсь добавить разрешения. Я не могу найти роль базы данных db_owner – karl

+0

Привет, Karl, это может помочь вам, когда пытается присвоить разрешения. http://msdn.microsoft.com/en-us/library/ms187940.aspx – codingbadger