pet*_*ter 7 replication sql-server merge-replication
我正在使用 SQL 2012 运行合并复制。
在 SQL 2012 中为复制添加的删除触发器似乎有一个令人讨厌的后果。
在删除触发器里面是这样的,
select @xe_message = CAST('replica_id: ' + convert(nvarchar(100), @replnick) + ', article_id: ' + convert(nvarchar(100), @tablenick) + ', rowguid: ' + case when @article_rows_deleted = 1 then convert(nvarchar(100), @rowguid) else N'0' end + ', generation: ' + case when @is_mergeagent = 1 then N'0' else convert(nvarchar(100), @newgen) end + ', Reason: -1' AS varbinary(1000));
exec master..sp_repl_generateevent 1, N'Event : ppm_insert', @xe_message
Run Code Online (Sandbox Code Playgroud)
如果某人不在系统管理员角色中进行删除,则会发生错误,
Msg 8189, Level 14, State 10, Procedure sp_repl_generateevent, Line 1
You do not have permission to run 'SP_TRACE_GENERATEEVENT'.
Run Code Online (Sandbox Code Playgroud)
那么您是说我的数据库的每个用户如果要进行删除操作都必须具有 sysadmin 访问权限?
这似乎是错误的。有没有办法关闭此跟踪或删除此要求的替代方法?
那么您是说我的数据库的每个用户如果要进行删除操作都必须具有 sysadmin 访问权限?
不,根据BOL 关于 sp_trace_generateevent 的文档:
用户必须有
ALTER TRACE权限。
| 归档时间: |
|
| 查看次数: |
1207 次 |
| 最近记录: |