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