...

...

Windows 2008 Server が 2 台あります。1 台は Web サーバー (IIS7) で、もう 1 台はデータベース サーバー (SQL Server 2008) です。SQL Server 2008 のインスタンスは、混合モード認証を使用するように構成されています。どちらも Active Directory ドメインに参加していません。

Web サーバー上の ASP.NET アプリケーションは、データベース サーバー上のデータベースにどのようにログインすればよいでしょうか? SA アカウントでテストしましたが、明らかに変更する必要があります。

SQL Server アカウント、各マシンに構成された Windows アカウント、または「アプリケーション ロール」のどれを使用すればよいかわかりませんが、これらについてはよく理解していません。

アカウントは、データの読み取りと書き込み、およびストアド プロシージャの実行が可能である必要があります。何をすればよいですか。また、どのように設定すればよいですか。

...

簡単な回答ではなく、設定方法を教えていただけますか。よろしくお願いします。

答え1

より安全な方法は、Windows 認証を使用します。これにより、接続文字列や構成ファイルにパスワードを含めずにアプリケーションを作成できます。

各システムごとにユーザー アカウントを作成します。これは管理者アカウントではなく、通常のユーザー アカウントである必要があります。両方のシステムで、同じ名前とパスワードを持つユーザーを作成します。

次に、IIS システムでアプリケーション プールの設定を編集します。作成したユーザー アカウントとして実行するように ID を変更します。この時点で、ユーザーのパスワードを入力する必要があります。

SQL サーバーで、作成した Windows 使用アカウントに関連付けられたログイン アカウントを作成します。通常の SQL Server 権限を使用して、アプリケーションに必要なアクションを許可または拒否できます。

これで、アプリケーションで統合セキュリティを使用して SQL サーバーに接続します。SQL 接続を行うときは、アプリ プール ユーザーが使用されます。

設定やアプリにパスワードは不要で、データベース接続は安全です。

答え2

最も一般的に使用される方法は、SQL ログインです。強力なパスワードを持つ SQL ログインを作成します。アプリケーションが使用するデータベースにユーザーとして追加します。データベースにデータベース ロールを作成し、ユーザーをこのロールのメンバーにします。データベース ロールに、アクセスする必要があるオブジェクトへのアクセスを許可します。

ロールには必要な権限のみを付与する必要があります。

データベース ロールの目的は、データベースを別のサーバーに復元し、別のユーザーに正確な権限を簡単に付与して、すべてが正しく動作していることを確認できるようにすることです。

関連情報