Sql-Server
db_datareader 和 db_denydatawriter 有什麼區別?
我正在嘗試將 SQL Server 數據庫角色分配給只需要能夠查看所有表中的數據的使用者。我想知道和
有什麼區別? 從文件中我似乎沒有意識到任何區別。
db_datareader``db_denydatawriter
謝謝,
我正在嘗試將 SQL Server 數據庫角色分配給只需要能夠查看所有表中的數據的使用者。
你應該只讓他成為 的成員
db_datareader
。預設情況下,任何新創建的
user
都根本沒有權限(除非您授予某些權限public
或相應login
的權限在server level
: 例如,view any definition
在伺服器級別意味著view definition
立即database level
映射login
到數據庫)。
我認為您何時使用該
db_denydatawriter
角色的真實範例會有所幫助。我的一個客戶有一個第三方供應商協助一個長期(2 年)、固定範圍的項目。供應商將在項目期間處理客戶的域。出於文件共享目的,供應商的 AD 使用者帳戶已成為現有 AD 安全組的一部分。我們使用同一個 AD 安全組來授予 SQL Server 中的數據庫訪問權限。
我們不希望供應商能夠對數據庫進行任何更改,但我們確實希望他們具有與 AD 安全組的其他成員相同的讀取訪問權限。
我們通過將單個供應商 AD 使用者帳戶添加到
db_denydatawriter
角色中輕鬆實現了這一點。一個好的經驗法則是,如果您不確定自己需要哪個角色,您可能需要
db_datareader
. 的案例db_denydatawriter
更加專業。