Моя стаття допоможе, якщо ви її встановили заздалегідь, але не тоді, коли подія траплялася в минулому, і у вас не було створено жодного механізму аудиту.
Надія все ж є. Скажімо, я зробив це:
CREATE LOGIN flooberella WITH PASSWORD = N'x', CHECK_POLICY = OFF;
Ця інформація знаходиться у сліді за замовчуванням у EventClass 104 (Аудит події Addlogin). Однак якщо я змінив пароль, використовуючи будь-який із цих способів:
ALTER LOGIN flooberella WITH PASSWORD = N'y';
EXEC sp_password N'y', N'z', N'flooberella';
Ці події не зафіксовані за замовчуванням, з очевидних причин безпеки - особам, які мають доступ до тракту за замовчуванням, не повинно бути зрозумілим, що таке чужий пароль, і не хочуть спростити це навіть зрозуміти, що це був змінений пароль (наприклад, опитування частоти цих подій може виявити певні властивості вашої стратегії безпеки).
То що ще можна зробити? Хоча це спирається на інформацію, яка все ще перебуває в журналі, а також покладається на використання незадокументованої команди DBCC проти системної бази даних (ви можете створити резервну копію головного майстра та відновити його в іншому місці), ви можете отримати деяку інформацію з журналу транзакцій, наприклад:
DBCC LOG(master, 1);
Це дасть для цих двох команд рядки з наступною (частковою) інформацією:
Current LSN Description
====================== ======================================================================
000000f2:000001b8:0002 ALTER LOGIN;0x01050000000000051500000093a3bcd7a9f8fb1417ab13bce8030000
000000f2:000001b8:0004 Alter login change password;0x01050000000000 ... same sid as above ...
Здається, не так вже й багато, але тепер візьміть цю частину 0x опису, а потім виконайте:
SELECT name FROM sys.server_principals
WHERE sid = 0x01050000000000051500000093a3bcd7a9f8fb1417ab13bce8030000;
Курильний пістолет! Це людина, відповідальна за цю подію.
Звичайно, якщо вони використовують ALTER LOGIN
синтаксис для всіх операцій (які вони повинні використовувати замість них sp_password
), ви не зможете розрізнити, хто змінить базу даних за замовчуванням і хтось змінить пароль. Ви ж не можете сказати (по крайней мере , що я можу бачити) , що увійти в цей постраждалих, тільки ця людина змінила на вхід в систему . Джон, здається, вважає, що ця інформація є і в журналі, але я не зміг її знайти (на відміну від інформації про час, яку я якось прокручував прямо в минуле).
Користувачі, що містяться в SQL Server 2012, можуть мати різні відповіді, хоча я підозрюю, що зміни пароля все ще приховуються аналогічно. Залишимо це для окремого питання.