当前位置: 代码迷 >> Sql Server >> 【DDL触发器】用DDL触发器记录权限变更 的两个有关问题
  详细解决方案

【DDL触发器】用DDL触发器记录权限变更 的两个有关问题

热度:68   发布时间:2016-04-27 17:21:03.0
【DDL触发器】用DDL触发器记录权限变更 的两个问题
SQL code
CREATE TRIGGER dtr_dba_DBON DATABASE FOR DDL_DATABASE_LEVEL_EVENTS 


问题1: 对于创建表一级的DDL触发器 能否只在服务器上定义一次( ON ALL SERVER) 而不需要到每个库里增加这个触发器

问题2: 在每个库里定义的触发器 如何保证能对记录表数据有写入权限 ,WITH EXECUTE AS ‘sa' 需要将每个数据库里映射SA用户,太绕了

------解决方案--------------------
探讨

SQL code


CREATE TRIGGER tr_db
ON DATABASE
WITH EXECUTE AS 'sa'
FOR DDL_DATABASE_LEVEL_EVENTS
AS
....

--返回: 消息 15151,级别 16,状态 1,过程 tr_db,第 20 行
--无法对 用户 'sa' 执行 执行身份,因为它不存在,或者您没有所需的权限。



CRE……
  相关解决方案