LinqToSQLと信頼できる接続を使用して、データベースの選択/更新/挿入/削除を処理しています。これまで、私は常にストアドプロシージャを使用し、データベース内の特定のsprocのアプリケーションプールIDに実行権限のみを付与していました。これは私の最初のLinqToSqlプロジェクトです(そして私はそれがどれほど役立つか本当に大好きです)。LinqToSqlを機能させるために、アプリケーションプールIDへのdboアクセスを許可したくない(ただし、それが推奨される場合は、気にしない)。LinqToSqlが最小限のアクセス許可を持つように、アプリケーションプールIDにどのような種類のアクセス許可を付与できますか?それとも、dbo権限を使用して、それで済ませる必要がありますか?
KristoferAの回答によると、これはデータベース内のアプリケーションプールIDに付与したアクセス許可です。
EXEC sp_addrolemember 'db_datareader', 'app_pool_identity'
EXEC sp_addrolemember 'db_datawriter', 'app_pool_identity'
必要なsprocに実行権限を付与するだけのセキュリティとはまったく同じレベルではありませんが、Linq2SQLを使用するだけで達成した開発の大幅な向上を考えると、非常に優れています。そして、完全なdboアクセスを許可するよりも優れています。