SQL Server 2012:Security_error_ring_buffer_recorded:ImpersonateSecurityContext


10

私が管理しているいくつかのサーバーが、system_health XEセッションで多くのイベントを記録しています。

error_code 5023は(システムエラーコード)である必要があります。

ERROR_INVALID_STATE    5023 (0x139F)

The group or resource is not in the correct state to perform the requested operation.

イベントセキュリティログにもSQL Serverログにもログイン失敗イベントはありません。


Microsoftサポートに連絡したか、チケットをオープンしましたか?これは内部エラーのようです。
Jon Seigel 14年

インスタンスのビルド番号とOSバージョンは何ですか?

これはSP1のプレーンSQL 2012です:11.00.3000.00。セットアップのエラーではないと確信でき次第、MSサポートに連絡したいと思います。ここでフィードバックを期待しています...
Jens W.

回答:


4

これらのイベントの定義と根本原因を探していると想定します。

以下からの仕組み:SQL Server 2005のSP2のセキュリティリングバッファ- RING_BUFFER_SECURITY_ERROR アーカイブ

SQL Server 2005 SP2 sys.dm_os_ring_buffersでは、さまざまなセキュリティエラー用の新しいリングバッファエントリ()が追加されました。リングバッファエントリが追加された理由は、クライアントがログインの失敗やその他のそのようなエラーを受け取った理由に関する詳細をDBAに提供するためです。

イベントログにもエラーログにも失敗したログインエントリがないことを示しています。代わりに、このリングバッファを直接照会できます。

SELECT CONVERT (varchar(30), GETDATE(), 121) as runtime,
dateadd (ms, (a.[Record Time] - sys.ms_ticks), GETDATE()) as [Notification_Time],
a.* , sys.ms_ticks AS [Current Time]
FROM
(SELECT
x.value('(//Record/Error/ErrorCode)[1]', 'varchar(30)') AS [ErrorCode],
x.value('(//Record/Error/CallingAPIName)[1]', 'varchar(255)') AS [CallingAPIName],
x.value('(//Record/Error/APIName)[1]', 'varchar(255)') AS [APIName],
x.value('(//Record/Error/SPID)[1]', 'int') AS [SPID],
x.value('(//Record/@id)[1]', 'bigint') AS [Record Id],
x.value('(//Record/@type)[1]', 'varchar(30)') AS [Type],
x.value('(//Record/@time)[1]', 'bigint') AS [Record Time]
FROM (SELECT CAST (record as xml) FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = 'RING_BUFFER_SECURITY_ERROR') AS R(x)) a
CROSS JOIN sys.dm_os_sys_info sys
ORDER BY a.[Record Time] ASC

通知時間は根本的な原因を明らかにするかもしれません。

エントリの日付/時刻が、次のようなエラーログのログイン失敗エントリと一致することがわかります。

「ユーザー「domain \ user」のログインに失敗しました。理由:インフラストラクチャエラーが発生したため、トークンベースのサーバーアクセス検証に失敗しました。以前のエラーを確認してください。[CLIENT:]エラー:18456重大度:14状態:11.」

以下からのトラブルシューティング特定のログインに失敗しましたエラーメッセージ アーカイブ

状態11はログインは有効ですがサーバーアクセスに失敗しました」に対応します。これは、ログインは有効ですが、インスタンスへのアクセスを許可する特定のセキュリティ権限がないことを示します。

  1. sys.server_principalsの出力を調べて、そのログインがSQL Serverログインの1つに直接マッピングされているかどうかを確認します。
  2. ログインがSQLインスタンスで使用可能なログインの1つに直接マッピングされている場合は、ログインのSIDがWindowsログインのSIDと一致しているかどうかを確認します。

ログインがWindows / ADレベルでドロップされて再度追加された場合、SQLがシステムカタログに保存したSIDと一致しない新しいSIDが取得され、失敗します。


1
問題は、新しいサーバー、すべてのアカウントが新しく、それらでログインできることです。しかし、それでも数十のそのようなイベント-明確な影響はありません。できるだけ早くリングバッファを読み取ってみます。
イェンスW. 14年

3
AD以外のサーバーでもこれと同じ動作が見られ、ログインの失敗やその他のエラーとは関係ありません。これは、セキュリティエラーリングバッファにログインするだけであり、system_healthをフラッディングし、それが発生する他の理由はありません。
Jonathan Kehayias 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.