2011-04-12 53 views
0

在SQL Server 2005中,用戶定義的數據庫角色可以「擁有」一個模式。你可以在數據庫角色的屬性窗口中看到它。什麼剛好這是否意味着對該模式中的表的權限/特權?擁有模式意味着什麼?當SQL Server 2005數據庫角色擁有模式時,需要什麼架構權限?

或者問另一種方式:如果我想要一個特定的用戶定義的數據庫角色對模式中的每個表具有select/insert/update/delete特權,那麼完成此操作的最佳/最聰明的方法是什麼?

我可以進入模式中的每個單獨表的權限並授予角色權限,但這看起來很愚蠢。我如何爲整個模式做?

感謝 AJ

回答

0

MSDN文檔:db_owner

使他們的db_owner組的成員應該是一個特定的數據庫將基本上你需要什麼 - 當然他們有一些額外的權限 - 比如降一個數據庫。

您可以創建一個新用戶組/模式,當然,你指出你需要設置相應的權限:SQL Server 2005 Permissions

+0

我不想讓用戶定義角色的成員成爲數據庫所有者。請仔細閱讀問題。 – Allen 2011-04-12 14:36:25

2

「自己」的意思是「具有完全訪問」或「可以做任何事情。」

如果這就是你想要的,只需使該組成爲模式所有者。

否則,向該組授予模式範圍的權限。您可以爲模式授予select權限,並且該組的成員將能夠從模式中的所有表中進行選擇,依此類推。

有關更多信息,請參見GRANT Schema Permissions

+0

OK,當我這樣做: '授予選擇,插入,更新,刪除模式:: ' 我得到: 不能授予,拒絕或吊銷權限SA,DBO,實體店主,information_schema,sys或你自己。 我以sa身份登錄。 ??? – Allen 2011-04-12 14:41:40

+0

@Allen是架構的當前所有者呢?確保它不是第一次。也就是說,將模式所有權轉移到'dbo',然後將權限授予。 – GSerg 2011-04-12 14:49:37

+0

是的,Gserg。就是這樣。謝謝。我之前將的所有者設置爲。我將所有者設置回dbo,並且能夠成功授予對'的選擇,插入,更新,刪除模式:: 。 我已經設置了架構所有權,認爲這是將該架構中的所有表上的特權開放給該角色的成員的正確方法,但似乎並不奏效。我想我並不完全清楚架構所有權與授予基於架構的權限之間的特權差異。 aj – Allen 2011-04-12 15:00:52

相關問題