Так или иначе создать SQL Server триггер DDL для операторов “SELECT”?

Должны были настроить изрезывание вкладки право.

кроме того, Consolas & Тематический Цвет - белые фоны повредил мои глаза

8
задан dance2die 4 October 2009 в 04:35
поделиться

4 ответа

У вас есть 3 варианта:

  • разрешить доступ через хранимые процедуры, если вы хотите вести журнал (и удалить права таблицы)
  • скрыть таблицу за представлением, если вы хотите ограничить и сохранить «прямой» доступ
  • запустить постоянную трассировку

Я бы выберите варианты 1 или 2, потому что они являются частью вашего приложения и самодостаточны.

Хотя это звучит немного поздно для начала ведения журнала: доступ к таблице должен был быть ограничен заранее.

Кроме того, любое решение не выполняется, если конечные пользователи не исправляют напрямую (например, через веб-сервер или учетную запись службы). Если вы не используете сохраненные процедуры для отправки имени конечного пользователя ...

См. Пример:

CREATE VIEW dbo.MyTableMask
AS
SELECT *
FROM
    MyTable
    CROSS JOIN
    (SELECT 1 FROM SecurityList WHERE name = SUSER_SNAME())
--WHERE could use NOT EXISTS too with table
GO
9
ответ дан 5 December 2019 в 07:12
поделиться

Да, это возможно, создав уведомление о событии в событии AUDIT_DATABASE_OBJECT_ACCESS_EVENT .

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

Аудит SQL Server 2008 может его захватить. Помимо этого, Profiler / Tracing - единственное, что может это сделать в SQL Server.

1
ответ дан 5 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

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