我意識到這是一個5歲的帖子,但它從來沒有被正確回答,還有一些非常糟糕的信息已經發布。
首先,讓我們看看Books Online對「DBO」角色(priv)的評論。重點是我的。 db_owner固定數據庫角色的
成員可以在數據庫上執行所有 配置和維護活動。
總而言之,這意味着具有「DBO」權限的人可以對任何他們想要的任何數據庫執行任何他們具有該權限的權限。到2005年,這也意味着他們可以放棄數據庫。
另請注意,它沒有說能夠控制服務器的血腥事情。據我所知,您需要「SA」或(最近)的「Control Server」權限來執行xp_CmdShell。 DBO不帶有priv,因此無法運行xp_CmdShell或許多以「xp_」或甚至「sp_」開頭的其他內容。
換擋並且因爲看起來OP已經有點意識到了,所以DBO privs被認爲是「提升的privs」。我建議你從來沒有將DBO權限授予應用程序(或其他前端),我只會將其授予應該負責數據庫管理員的人員。這些人需要像那些你會選擇成爲DBA的人一樣明智地選擇。
要回答有關CRUD的其他問題......在大多數情況下,由ORM執行CRUD時,需要的最高級特權是db_DataReader和db_DataWriter。說實話,我寧願不允許登錄擁有這些權限。我知道世界上每個前端開發人員都會尖叫我,但事實是,即使CRUD也應該通過存儲過程來完成,以防止攻擊者使用db_DataWriter讓攻擊者從表中刪除。就我而言,應用程序(和其他前端)應該只有未修改的PUBLIC權限和執行某些存儲過程的權限......期間。
我意識到這是一箇舊帖子,但是,抱歉...這是絕對不正確的!只有具有「SA」或「Control Server」權限的用戶纔可以運行xp_CmdShell。這是你看到的第二個這樣的帖子,我已經看到了這個錯誤信息。你從哪裏得到這些信息?我問,因爲提供它的人需要糾正。 – 2013-04-06 18:59:54