2013-07-16 37 views
0

我試圖創建一個角色,以授予少數用戶創建和更改視圖,過程和表的權限。 我不希望這些用戶能夠選擇/更新/刪除/更改等任何表在數據庫中,有我們想要保持控制的表 - 但他們應該有任何對象的完全權限他們應該創建。用戶/角色可以創建表或視圖,但不能從中選擇SQL Server 2008 - 所有權不傳遞給創建者

我已經給了用戶創建視圖等的權限,並且工作正常,但他們不能從他們然後創建的視圖中選擇。是否有可能做到這一點?

- 加入25/7/2013

示例: 的示例用戶麥克有授予表的少數特定權限。所有格蘭特,不拒絕。 其他數據庫級別的權限超出了「連接」 Plus是公共的成員(沒有改變 - 不丹尼斯),加上其他3個角色,我們已經建立了

角色:Standard_Reader在多個表 具體選擇權限。所有格蘭特,不拒絕。 沒有其他數據庫級別權限

作用:SensitiveDemographicsReader 對敏感表的特定選擇權限。所有格蘭特,沒有拒絕

角色:分析師 沒有具體的安全對象 數據庫級別的權限: 創建函數 CREATE PROCEDURE 創建表 創建視圖

此用戶可以創建一個表或視圖,但是一旦創建,無法從中選擇。

是否有可能設置SQL服務器,使得只要用戶用戶創建表或視圖那麼他們的權限,從它選擇(假設他們有上下層鑑於表的權限)

- EDIT

經過一番調查發現,由於某種原因,在我們的數據庫中,對象的所有權對他們的創建者來說並不算什麼。

使用此代碼

select so.name, su.name, so.crdate from sysobjects so join sysusers su on so.uid = su.uid 
order by so.crdate 

所有的業主,一對夫婦的異常被發現DBO。

我不明白爲什麼所有權不傳遞給對象的創造者。任何想法可能導致這種情況?

回答

0

我會評論,但缺乏特權;你有看過MySQL table permissions嗎?這是一個相當不錯的系統。

+0

感謝這個,但是我怕我使用MS SQL Server 2008中而不是MySQL – DanBennett

+0

您是否有興趣使用'GRANT SELECT ON(表名)TO(用戶名)'命令,例如? – sdweldon

+1

在此基礎上,很難否定您構成劍客的機智,但在您的渴望使用它你已經錯過了這一點 - 這裏的目標是創建桌子的用戶可以在沒有干預的情況下訪問它,只有幾個系統可以e可以根據所有權自動設置對象的不同安全性 - 在創建對象時將所有權分配給創建者。我想知道這是否可能在SQL中。 – DanBennett

1

聽起來像你用來拒絕他們首先是覆蓋默認設置。你能發佈更多關於用戶擁有什麼權限的信息嗎?

無法評論:(

+0

非常感謝。好吧,你可以期待他們創建的對象能夠正常應用這些權限嗎? (我做到了!)好吧,我會挖掘其他權限的細節,並查看可能存在的干擾。對我們的系統絕對沒有「否認」權限 - 我們只是授予或不授予,希望它不會太纏繞網絡。 – DanBennett

0

您需要授予SELECT在架構到用戶/組:

GRANT SELECT ON SCHEMA::dbo TO User/Group; 
相關問題