Определите, какой пользователь удалил базу данных SQL Server?

Это, вероятно, не самый элегантный способ сделать это. Но для тех, кто не знаком с троичными операторами, это может оказаться полезным. Мое личное предпочтение - сделать 1-строчный запасной вариант вместо блоков условий.

  // var firstName = 'John'; // Undefined
  var lastName = 'Doe';

  // if lastName or firstName is undefined, false, null or empty => fallback to empty string
  lastName = lastName || '';
  firstName = firstName || '';

  var displayName = '';

  // if lastName (or firstName) is undefined, false, null or empty
  // displayName equals 'John' OR 'Doe'

  // if lastName and firstName are not empty
  // a space is inserted between the names
  displayName = (!lastName || !firstName) ? firstName + lastName : firstName + ' ' + lastName;


  // if display name is undefined, false, null or empty => fallback to 'Unnamed'
  displayName = displayName || 'Unnamed';

  console.log(displayName);

Тернарный оператор

5
задан MagicAndi 29 June 2009 в 10:38
поделиться

3 ответа

Если после удаления активность была незначительной или отсутствовала вообще, то готовая трассировка может помочь. Попробуйте запустить:

DECLARE @path varchar(256)

SELECT @path = path
FROM sys.traces
where id = 1

SELECT *
FROM fn_trace_gettable(@path, 1)

[В дополнение к стандартной трассировке существует также менее известная трассировка «черного ящика», которая полезна для диагностики периодических сбоев сервера. В этом сообщении, Встроенные трассировки SQL Server , показано, как его настроить.]

10
ответ дан 18 December 2019 в 07:56
поделиться

Я бы сначала спросил всех, у кого есть доступ администратора к серверу Sql, удалили ли они его.

4
ответ дан 18 December 2019 в 07:56
поделиться

Лучший способ получить информацию - восстановить последнюю резервную копию.

Теперь обсудим, как избежать таких проблем в будущем.

Сначала убедитесь, что процесс резервного копирования запущен. правильно и часто. Сделайте резервную копию журнала транзакций через 15 минут или полчаса, если это база данных с высоким уровнем транзакций. Тогда самое большее, что вы потеряете, - это полчаса работы. Практикуйтесь в восстановлении базы данных, пока вы не сможете легко сделать это в стрессовой ситуации.

В SQL Server 2008 вы можете добавить триггеры DDL (не уверен, что вы сможете сделать это в 2005 году), которые позволят вам регистрировать, кто внес изменения в структуру. Возможно, вам стоит потратить время на то, чтобы разобраться в этом.

НЕ разрешайте административный доступ к вашей производственной базе данных более чем двум людям - dba и резервному лицу, когда dba отключена. Эти люди должны загрузить все изменения в структуру и код базы данных, и все изменения должны быть записаны в виде сценария, код проверен и протестирован в первую очередь на QA. Запрещается запускать незашифрованный код "беги за штанами" на продукте.

3
ответ дан 18 December 2019 в 07:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: