SELECTにユーザーを許可することと、ユーザーをdb_datareaderロールに追加することの間に違いはありますか?


9

私は許可するように頼まれたSELECTINSERTおよびUPDATEデータベース内のすべてのテーブルに対して、特定のユーザーへ。私はにユーザーを追加することになったdb_datareaderし、それらを付与INSERTし、UPDATEデータベースレベルで。

しかし、それは私に考えさせSELECTました、データベースレベルでユーザー権限を付与することと、それらをdb_datareaderロールに追加することの違いは(もしあれば)何ですか?そして、何らかの方法でベストプラクティスはありますか?

回答:


7

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 [データベース] と同じであることを示しています。そのため、使用することは問題ありませんが、これらのロールからより詳細なコマンドに移行することをお勧めします。他の固定データベースロールの一部は、ほとんどの人にとってあまり明確に定義されていません。明示的なコマンドを使用すると、権利を報告する際により明確になります。

当然のことながら、きめ細かい権限を付与する方法を知っています。私は可能な限り古いロールから脱却しようとしていますが、db_owner(たとえば)は破るのが難しい習慣です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.