エラーSQL Server 2008のサーバー側の "無効なユーザーID"(エラー18456、重大度:14、状態:5)
データベース管理者は、Microsoft SQL Server 2008のサーバー側のエラー"無効なログイン"(エラーを報告18456、重大度:14、状態:5)。サーバログから
エラー例:
Dec 1 2010 10:12AM - Login failed for user '{Active Directory Name #1}'. Reason: Could not find a login matching the name provided. [CLIENT: {IP Address #1}]
Dec 1 2010 10:44AM - Login failed for user '{Active Directory Name #2}'. Reason: Could not find a login matching the name provided. [CLIENT: {IP Address #2}]
Dec 1 2010 2:03PM - Login failed for user '{Active Directory Name #3}'. Reason: Could not find a login matching the name provided. [CLIENT: {IP Address #3}]
Dec 1 2010 4:18PM - Login failed for user 'Admin'. Reason: Could not find a login matching the name provided. [CLIENT: {IP Address #1}]
{Active Directoryの名前}ドメインなしに、自分のログイン名と同じです。たとえば、フルネームは{domain} \ {Active Directory Name}となります。
ユーザー "Admin"のエラーは、Microsoft Access Visual Basic for Applications(VBA)コードを開発しているユーザーである{Active Directory Name#1}と同じIPアドレスから取得されます。私は、ODBC DSNリンク経由でデータにアクセスしても、適切なWindows認証接続文字列でVBAを最小限に使用するように設定する必要があると考えています。
環境
のMicrosoft Access 2003(フロントエンド)データベースの読み取り専用のMicrosoft SQL Server 2008の(バックエンド)データベース内のテーブルへのODBCファイルDSNのリンクを含みます。
私はフロントエンドデータベースの管理者権限を持っています。外部データセンターのホストされたサーバーにあるバックエンドデータベースに対する読み取り専用のセキュリティ権限があります。 DBAは、Windows認証のバックエンドデータベースを設定しています。
エンドユーザーがActive Directoryアカウントを使用してPCにログインし、フロントエンドデータベースを開き、Microsoft Access Query Designerを使用して、バックエンドデータベースへのテーブルリンクを使用してレポートを生成します。フロントエンドデータベースはMicrosoft Access Jet Securityを使用しません(私の知る限り、ログインプロンプトはありません)。
フロントエンドデータベースは、(目に見える)エラーは報告されず、予期した結果が得られます。
ODBCファイルDSNの内容
[ODBC]
DRIVER=SQL Server
Trusted_Connection=Yes
StatsLogFile={path}
StatsLog_On=Yes
DATABASE={dbname}
APP=Microsoft Data Access Components
Description={general description}
SERVER={server name}
なぜファイルDSNのリンクがエラーなしで、動作しますが、サーバー側の無効なログインエラーが発生しますか?ありがとうございました。
その他の注意事項:テーブルリンクは、開発、テスト、およびエンドユーザーの使用中に、クライアント側のエラーなしで機能します。ユーザー1,2および3は、バックエンドデータベース上のユーザーとして作成され、ロールdb_datareaderが付与されたActive Directoryグループのメンバーです。同じActive Directoryグループがサーバー自体へのログインとして作成され、db_datareaderおよびpublicロールが付与されました。ログインはバックエンドデータベース上のユーザーに正しくマッピングされます。 – iokevins
注:2005年の代わりに2008年を反映するよう変更されました。本番環境は2005年ですが、開発環境は2008年です。 – iokevins