日本語

エラー: ログインで要求されたデータベースを開けません。 ログインに失敗しました。 ユーザーのログインに失敗しました。

エラー メッセージ

ArcGIS Server Manager for the Microsoft .NET Framework では、別の Web サーバー コンピューターに Web アプリケーションを作成できます。 このリモート Web アプリケーションは Manager でセキュリティ保護され、指定されたロールがアプリケーションへのアクセスを許可されるようになります。 ユーザーが Web アプリケーションにログインすると、ブラウザーにエラーが表示されることがあります。

デフォルトでは、一般的なエラーが表示されます。ただし、ブラウザーがアプリケーションをホストする Web サーバー上で実行されている場合を除きます。 後者では、エラー メッセージが表示されます。 このエラー メッセージには次のような行が表示されます。

「ログインで要求されたデータベース <データベース名> を開けません。 ログインに失敗しました。 ユーザー <ユーザー名> のログインに失敗しました。」

通常、<ユーザー名> は Network Service または ASPNET です。

原因

このエラーは、ArcGIS Server 用に構成されたユーザー ストアが Microsoft SQL Server 内にある場合に発生しますが、ユーザー ストアがカスタム プロバイダー内にある場合に発生することもあります。 原因は、Manager アプリケーションで定義されたユーザー ストアが、リモート IIS Web サーバー上で実行されている Web アプリケーションにアクセスできないことにあります。

特に、SQL Server を実行するコンピューター名が適切に指定されていない場合や、SQL Server またはカスタム プロバイダーにアクセスするアカウントの権限が正しくない場合に発生することがあります。

解決策または対処法

解決するには、次の 2 つの手順のいずれか、または両方を実行する必要があります。

1) コンピューター名またはデータベースの位置情報を修正します。

2) アプリケーションを実行しているアカウントに対する適切な権限を確認します。

次に示す手順では、SQL Server の問題に対処しています。 カスタム プロバイダー使用時の同様の問題に対しては、プロバイダーの場所や権限の構成など、カスタム プロバイダーに相当する手順を実行する必要があります。

  1. エラーの最初の原因は、SQL Server のコンピューター名をリモート コンピューターから検出できるように指定する必要があることだと考えられます。 この問題に対処する手順は次のとおりです。

    a) ArcGIS Server Manager にログインします。

    b) [セキュリティ] → [設定] の順にクリックして、[構成] をクリックします。

    c) セキュリティ ウィザードでは、最初のパネルは SQL Server に設定されています。 [次へ] をクリックします。

    d) [SQL Server の指定] パネルで、サーバーの値を調べます。 リモート コンピューターが検出できるようなサーバー名が指定されている必要があります。 名前に「.」や「localhost」は使用できません。 必要に応じて、アプリケーションをホストするリモート Web サーバーがこの名前 (または IP アドレス) を使用して SQL Server にアクセスできることを確認します。 SQL Server のコンピューター名が、リモート Web サーバーがアクセスに使用可能な名前にすでに設定されている場合は、下のステップ 2 に進みます。 そうでない場合は、必要に応じて、名前を変更して SQL Server のコンピューター名または IP アドレスを使用します。

    e) SQL Server 名を修正した場合には、[接続] をクリックし、ウィザードを完了して更新済みの設定を保存します。

    f) [アプリケーション] タブに移動して、リモート Web アプリケーションに対して [権限] ボタンをクリックします。

    g) [権限] ダイアログ ボックスで [保存] をクリックします (権限の変更は可能ですが必須ではありません)。 これにより、Web アプリケーションの構成に、更新された SQL Server 名が上書きされます。

    h) リモート Web アプリケーションに対するブラウザーを開き、ログインします。 正常にログインしてアプリケーションを使用できる場合は、残りの手順をスキップしてください。 権限エラーが表示される場合は、ステップ 2 に進みます。
  2. SQL Server データベースへの接続設定は、Web アプリケーションがデータベースにアクセスできるように構成する必要があります。

    次に示すアプローチは、Windows 認証ではなく、SQL ログインを使用してデータベースに接続するものです。 以下の手順に従って、SQL ログインを使用して Web アプリケーションに接続するように、Web アプリケーションの認証を変更してください。

    a) SQL Server Management Studio を開いて SQL Server インスタンスに接続します。 SQL Server Express のために、必要に応じて、SQL Server Management Studio Express をインストールします。

    b) SQL Server Express に対して SQL ログインを許可します。 このためには、左側のツリーでザーバー (<サーバー名>\SQLEXPRESS) を右クリックして、[プロパティ] をクリックします。 [プロパティ] ウィンドウで、[セキュリティ] ページのリンクをクリックします。 セキュリティ パネルで、サーバー認証の下の [SQL Server 認証モードと Windows 認証モード] のオプションをクリックします。 [OK] をクリックして設定を保存し、[プロパティ] ダイアログ ボックスを閉じます。

    c) Security フォルダーを展開して Logins フォルダーをクリックすることで、新しい SQL ログインを追加します。 Logins フォルダーを右クリックして、[新しいログイン] をクリックします。 ダイアログ ボックスが開くので、新しいログインの名前を入力します (AGSApplications など)。 SQL Server 認証のオプションをクリックしてパスワードを入力し、そのパスワードを確認します。

    d) 同じ新しいログインのダイアログ ボックスで、ユーザー マッピング ページのリンクをクリックします。 [このログインにマップされたユーザー:] の下で、ArcGIS Server システムのユーザーを含むデータベースの横のチェックボックスをオンにします。 ダイアログ ボックスでデータベースがハイライト表示されていることを確認して、次に、[データベース ロールのメンバーシップ: <データベース>] の下で db_owner ロールをオンにします。 [OK] をクリックして、ログインとそのロールを作成します。 SQL Server Management Studio を終了します。

    e) ArcGIS Server Manager にログインして、[セキュリティ] → [設定] → [構成] の順に選択します。

    f) セキュリティ ウィザードで、必要に応じてユーザーの場所の SQL Server をクリックして、[次へ] をクリックします。

    g) [SQL Server の指定] パネルで SQL Server 名を入力します。サーバー名には「.」や「localhost」以外を使用してください。 [接続] をクリックして SQL Server に接続します。

    h) 表示されるダイアログ ボックスの下部で、[信頼された接続を使用] チェックボックスをオフにします。 上記で作成した SQL ログインのログイン名とパスワードを入力します。 [既存のデータベースを使用] ドロップダウン メニューから、データベースを選択します。 [次へ] をクリックして、指示どおりにウィザードを終了します。

    i) [アプリケーション] タブに移動して、リモート Web アプリケーションに対して [権限] ボタンをクリックします。

    j) [権限] ダイアログ ボックスで [保存] をクリックします (権限の変更は可能ですが必須ではありません)。 これにより、Web アプリケーションの構成に、更新された SQL Server ログインが上書きされます。

    k) リモート Web アプリケーションに対するブラウザーを開き、ログインします。 正常にアプリケーションにログインし、使用できるようになります。 権限エラーが発生した場合は、SQL ログインの設定と Manager の構成を再確認してください。