私は、SQL Server のセキュリティ関連の問題に頭を悩ませようと懸命に探してきました。SQL Server 2008 を対象とする .NET アプリケーションを開発しており、FileStream を使用したいと考えています。
統合セキュリティを使用している場合、SQL Server は Win32 API を介した FileStream のみを許可することがわかりました。問題は、アプリケーションの約 80% が完成していることですが、それは完全に SQL 認証に基づいています。そのため、アプリケーションで INSERT のストレート フォームを実行しており、すべての CRUD 操作にストアド プロシージャを使用していません。
これは、SQL のユーザー名とパスワードを暗号化された形式で保存できるため、比較的安全です。パスワードが平文で転送されることは知っていますが、それを受け入れるつもりです。
エンド ユーザーが Crystal Reports などのツールを介してデータベースに接続できるようにしたいと考えています。そのために、SELECT 権限のみが付与された追加の SQL ログインを用意しています。
ここで、統合セキュリティに変更する場合、(AD グループなどを介して) 個々のユーザーに、アプリケーションが実行できることを実行する権限を付与する必要があります。そうしないと、アプリケーションはその作業を行うことができなくなります。ただし、エンドユーザーは、DB に直接接続するときにもこれらの権利を持ちます。
すべての CRUD 操作にストアド プロシージャを使用し、AD グループにのみ EXEC 権限を付与する必要があると言っている人を見かけますが、どうすればよいでしょうか? ユーザーが直接接続するとき、またはアプリケーションを介して接続するときに、ユーザーがどのように異なる権限を持つのかわかりません...これについて誰か教えてもらえますか。
ボーナス ポイントに関する追加の質問: 私が理解している限り、統合セキュリティはワークグループでは機能しません。では、ワークグループで FileStream を動作させるにはどうすればよいでしょうか。それとも、これは不可能と見なされますか?