1
我创建了一个数据库和一些dbo.tables。现在我想创建一个可以读写这些表的用户,但不能修改或删除。不过,我希望这个用户能够创建自己的表,并让他做他想做的事情。SQL Server 2005用户权限
这可能吗?有人可以解释如何做到这一点吗?
我创建了一个数据库和一些dbo.tables。现在我想创建一个可以读写这些表的用户,但不能修改或删除。不过,我希望这个用户能够创建自己的表,并让他做他想做的事情。SQL Server 2005用户权限
这可能吗?有人可以解释如何做到这一点吗?
您将为dbo
模式分配用户db_datareader
& db_datawriter
角色。
但是,要允许用户只创建和修改新表;您将不得不创建不同的架构并为该架构分配例如db_owner
权限。
但您应该意识到,这样做可能会产生问题,因为您可以在不同模式下使用两个具有相同名称的表。所以你应该确保你的查询总是声明对象的所有者。
例如
dbo.MyTable
CustomSchema.MyTable
UPDATE:
好吧,我想这些都是你需要采取的步骤:
db_ReportingRole
和相关用户添加到该角色。Reporting
并使db_ReportingRole
成为此模式的所有者。CREATE
,DROP
等权限db_ReportingRole
dbo
架构db_datareader
和db_datawriter
角色。这应该然后让你有一个可以读写dbo
模式,但也应该能够修改表等,但用户,因为他们在db_ReportingRole
他们应该有充分的机会来修改,创建,删除etc的表格在Reporting
架构中。 (提供了已分配了正确的权限db_ReportingRole
我希望这对你的作品。
感谢您的答复。 如何我让用户使用新的模式?难道我只是更改默认模式到新的模式还是我做新的模式的用户所有者? – karl 2010-05-17 12:17:46
当我创建新的模式并尝试添加权限。我找不到数据库角色db_owner – karl 2010-05-17 12:29:38
嗨卡尔,这可能会帮助你试图分配权限http://msdn.microsoft.com/en-us/library/ms187940.aspx – codingbadger 2010-05-17 12:35:06