1

実稼働サーバーで実行されているウィンドウ サービスがあります。サービスは、レコードを処理するためにデータベース サーバーに頻繁にアクセスします。毎日、以下のエラーがスローされます。

ユーザー 'S-1-5-21-1482476501-1214440339-839522115-500' メッセージ 18456、レベル 14、状態 1 のログインに失敗しました。

例外でSQLユーザー名ではなく長いユーザー名が表示されているのはなぜだろうか. サーバーサーバーバージョン2012.

4

3 に答える 3

1

他の人がコメントしているように、これはWindows SIDです。同じ問題 (SID からアカウント名を取得しようとしている) があり、翻訳に使用する小さな PoSH スクリプトがあります。

param(
    [string] $sid = (Read-Host "Enter a SID")
)
$objSID = New-Object System.Security.Principal.SecurityIdentifier ( $sid )
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount] )
$objUser.Value
于 2013-09-05T12:53:29.623 に答える
0

私はまったく同じ問題を抱えていましたが、それは含まれているデータベースが原因でした。私の場合の修正は、含まれているユーザー アカウントを使用する代わりに、グローバル ユーザーを作成し、そのユーザーを db_owner としてデータベースに割り当てることでした。

グローバル ユーザーを作成するには、次の手順に従います。

  • SQL Enterprise Manager にログイン
  • 左側のツリーでセキュリティ ノードを展開します。
  • [ログイン] を右クリックし、[新しいログイン...] を選択します。
  • ログイン名とパスワードを入力
  • 左側のペインで [ユーザー マッピング] をクリックします。
  • 右側のペインでデータベースを選択し、以下の関連するロールを選択します。私の場合、ユーザーを db_owner にしたかった

新しいグローバル ログインを作成したら、データベースに接続しているアプリケーションを更新して、新しい資格情報を使用する必要があります。

この特定の問題は、2013 年 7 月 30 日に Microsoft によって確認されました。接続が含まれているユーザーを追加した後、含まれている DB での接続プールでのログインの失敗を参照してください。彼らは「私たちは問題に取り組んでおり、修正は次または将来のサービス パックで行われる予定です」と述べていますが、公平を期すために、SP1 以降の累積的な修正プログラム パッケージを適用していないため、これは既に修正されている可能性があります。

于 2014-02-21T14:07:20.250 に答える