4

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アクセスを許可するよりも優れています。

4

2 に答える 2

1

スキーマの変更などをいじらずにデータの読み取りと書き込みを行う場合は、db_datareaderとdb_datawriterで十分です...

于 2009-09-21T13:50:33.063 に答える
0

LinqToSQLは、動的に生成されたSQLを作成します。そのため、データ操作言語コマンド(挿入、更新、削除)へのフルアクセスが必要です。アプリケーションアカウントは、データ定義言語コマンド(作成、削除、変更など)にアクセスする必要はありません。

于 2009-09-21T13:51:07.543 に答える