Sql-Server

將 SELECT 授予使用者和將其添加到 db_datareader 角色之間有區別嗎?

  • September 1, 2020

我被要求為數據庫中的所有表授予和SELECT授予給定使用者。我最終在數據庫級別 添加使用者並授予他們。INSERT``UPDATE``db_datareader``INSERT``UPDATE

SELECT但這讓我想到,在數據庫級別授予使用者權限或將它們添加到db_datareader角色之間有什麼區別(如果有的話) ?是否有任何最佳實踐方法?

Rick Byham 有一篇 WIKI 文章,展示了固定伺服器和固定數據庫角色以及它們的映射方式。您可以在這裡查看:http: //social.technet.microsoft.com/wiki/contents/articles/database-engine-fixed-server-and-fixed-database-roles.aspx

圖表顯示 db_datareader 角色GRANT SELECT ON相同

$$ database $$. 所以它仍然可以使用,但建議是從這些角色轉移到更精細的命令。對於大多數人來說,其他一些固定數據庫角色的定義不太明確。使用顯式命令可以在報告權限時更加清晰。 顯然,您知道如何授予更細粒度的權限。我試圖盡可能擺脫舊角色,但 db_owner (例如)是一個很難打破的習慣。

引用自:https://dba.stackexchange.com/questions/48880