SQL Server 2005用户权限

时间:2010-05-17 11:51:41

标签: sql sql-server permissions

我创建了一个数据库和一些dbo.tables。现在我想创建一个可以读写这些表的用户,但不能修改或删除。但是我希望这个用户能够创建自己的表,并让他用这些表做他想做的事。

这可能吗?有人可以解释一下如何做到这一点?

1 个答案:

答案 0 :(得分:3)

您可以将用户分配到db_datareader& db_datawriter架构的dbo个角色。

但是,允许用户仅创建和修改新表;您必须创建不同的架构并为此架构分配db_owner权限。

你应该知道,这样做可能会产生问题,因为你可以在不同的模式下有两个同名的表。因此,您应该确保查询始终说明对象的所有者。

e.g。

dbo.MyTable

CustomSchema.MyTable

更新:

好的,我认为这些是您需要采取的步骤:

  1. 创建新的数据库角色,例如db_ReportingRole,并将相关用户添加到此角色。
  2. 创建一个新的架构,例如Reporting,并使db_ReportingRole成为此架构的所有者。
  3. 将相关的CREATEDROP等权限分配给db_ReportingRole
  4. 确保之前添加的同一用户位于db_datareader架构的db_datawriterdbo角色中。
  5. 这应该允许您拥有一个可以读取和写入dbo模式的用户,但应该能够修改表等。但是,因为他们在db_ReportingRole中应该具有完全访问权限在Reporting模式中修改,创建,删除等表。 (假设您已为db_ReportingRole

    分配了正确的权限

    我希望这适合你。