SQL Server 2016 – Table temporelle – comment identifier l'user

Est-il possible d'get les informations sur l'user / la connection qui a modifié datatables dans la table historique? J'ai lu au sujet du scénario d'audit où je peux utiliser des tables temporelles et qu'il est possible de détecter qui a changé datatables. Mais comment puis-je faire ça?

Dans la mise en œuvre actuelle des tables temporelles, il enregistre uniquement les informations basées sur le time et rien d'autre sur la session qui a effectué la modification. Et ne lisez pas cette déclaration comme ayant une sorte de connaissance d'initié que cette situation pourrait changer à l'avenir; Je ne sais rien à ce sujet. Si vous avez besoin de cette information, vous devrez l'save en ligne. Une approche classique consiste à utiliser un triggersur qui triggers les opérations DML et à conserver cette valeur pour le count de l'user.

Une autre option que je pensais pour résoudre ce problème est d'avoir un champ LastModifiedBy dans votre table temporelle de base qui est rempli lorsque la ligne est enregistrée ou mise à jour.

Cela montrerait qui a modifié la table et ainsi créé l'historique. Comme Aaron mentionné ci-dessus, vous pourriez le faire dans un triggersur, mais ma pensée est de le faire avant qu'il n'atteigne l'insert / update et de mettre la valeur dans le champ LastModifiedBy au moment où l'logging est mis à jour.

Cela serait également dans la table d'historique chaque fois que l'logging est modifié.