要捕获已删除的用户名,我在我的CDC表中添加了一个新列(例如: - cdc.dbo_testCDC_CT)以设置记录的SQL用户名。 ie; ALTER TABLE cdc.dbo_testCDC_CT ADD username VARCHAR(20)DEFAULT(SUSER_SNAME()))。 该列中的值总是“sa”,但我被记录为Windows身份验证。为什么这个哈皮?使用CDC捕获数据
0
A
回答
1
首先,你不应该修改由cdc生成的系统表。此表是在您的dbo.testCDC表上启用cdc时生成的,并且将包含源表的列,以及另外5列,其含义如下所述:http://msdn.microsoft.com/en-us/library/bb500305(v=sql.110).aspx。当您禁用表格中的cdc时,它将被自动删除。
我建议先阅读cdc和预期的使用模式。良好的开端可能是这篇文章: http://technet.microsoft.com/en-us/magazine/2008.11.sql.aspx
要回答你的问题,为什么SA总是分配给您的列:在* _CT表中的所有行通过日志读取器过程,发生在sa帐户下运行填写你的情况。这不是将审计添加到您的系统的方式。前面提到的文章可以为您提供一些更好的实施审计方法的指南。
1
您的解决方案应该捕获'Changed By'或'Inserted By'记录的用户名并将其保存到捕获实例本身的基础数据表主题中。通过这种方式,您的CDC实例也将为您捕获记录的用户名。
前面已经提到的,你应该永远不变的系统生成的表,两个简单的原因:1。 当他们恢复因任何原因,您的更改将丢失 2.更改系统表可以为您提供相当意想不到的后果。
希望这可能有助于。
相关问题
- 1. MYSQL更改数据捕获(CDC) - Azure服务(Azure数据工厂)
- 2. 捕获数据使用
- 3. 在SQL Server的表中启用CDC时缺少CDC捕获作业
- 4. 使用java捕获DNS数据包
- 5. 使用Java的USB数据包捕获
- 6. 使用POST或SESSION捕获数据
- 7. 如何使用netfilter捕获数据包?
- 8. 如何确定使用熊猫数据框捕获数据?
- 9. 更改数据捕获性能损失是否限制在启用CDC的表中?
- 10. 更改数据捕获 - 用于捕获数据更改的Microsoft最佳实践?
- 11. html表单捕获数据使url
- 12. 如何使用SQL Server CDC重新加载增量数据?
- 13. 如何在不禁用CDC的情况下激活对新添加的基础表列的更改数据捕获(CDC)
- 14. 如何捕获数据包
- 15. Python GPS数据捕获
- 16. 捕获数据流的Java
- 17. wireshark:仅捕获数据层
- 18. Talend PostgreSQL Chage数据捕获
- 19. Powershell SQL Server数据库恢复(与CDC)
- 20. SQL Server CDC(更改数据捕获)仅用于表数据更改?我可以使用它来跟踪程序或其他类型的对象更改吗?
- 21. 如何捕获用户数据
- 22. 如何用Asterisk捕获GTalk数据?
- 23. 如何用Apache捕获CURL/XML数据?
- 24. 捕获使用C#
- 25. 如何知道何时从变更数据捕获(CDC)中删除表或将其添加到表中?
- 26. 根据请求超时捕获数据
- 27. 根据URL中的值捕获数据
- 28. 如何使用Amazon Alexa捕获小数?
- 29. 在.split()函数中使用捕获组
- 30. 如何使用Hibernate捕获数据库通信失败
@Sreepathi,请使用标记作为答案按钮来奖励花时间回答您的问题的人。 – rrozema 2017-10-20 11:07:46