Web 从数据采集应用程序在数据库中记录设备id

Web 从数据采集应用程序在数据库中记录设备id,web,Web,应用程序A正在通过web服务Y与数据库X通信。服务Y支持对数据库X中的数据进行插入、更新和删除操作。许多授权人员可以使用应用程序A并通过服务Y连接到数据库X。 开发人员Q希望创建一个数据库触发器,以记录关于数据库X中表的条目和更新的一些信息,包括设备id或IP。开发人员Q是否可以通过服务Y通过与数据库X建立的连接访问某些设备标识? 如果他/她不能,有解决办法吗?简短回答是。这个问题更复杂一些。您没有包括web服务是用什么语言编写的,因此首先要保持它的高级别,并关注实现无关的方式 大多数用于编码w

应用程序A正在通过web服务Y与数据库X通信。服务Y支持对数据库X中的数据进行插入、更新和删除操作。许多授权人员可以使用应用程序A并通过服务Y连接到数据库X。 开发人员Q希望创建一个数据库触发器,以记录关于数据库X中表的条目和更新的一些信息,包括设备id或IP。开发人员Q是否可以通过服务Y通过与数据库X建立的连接访问某些设备标识?
如果他/她不能,有解决办法吗?

简短回答是。这个问题更复杂一些。您没有包括web服务是用什么语言编写的,因此首先要保持它的高级别,并关注实现无关的方式

大多数用于编码web服务捕获请求信息的语言—设备信息、web客户端信息、ip地址(虽然不可靠)、身份验证标识(如果不是匿名访问),因此,跟踪这些数据的一种典型方法是在数据库中创建一个会话表,您可以将所有相关的请求数据写入该数据库,以用于web服务会话。然后为每个会话派生一个密钥。最后,为每个执行DML的表添加会话键列。另一种方法是拥有一个操作表(您已经拥有的)和一个匹配的日志表。操作表没有会话键列,但日志记录表有。还有其他记录活动的方法,这些只是为了证明这一点

例如,另一种方法是创建一个派生的连接类,并将其添加到web服务会话信息中。然后,可以在数据库命令执行时访问它(通常通过命令对象执行),并通过编程方式进行日志记录,而不是编写触发器


在您的特定情况下,后一种方法似乎比触发器更合适,因为当有人直接在数据库上执行DML时,或者在另一个接口而不是web服务上执行DML时,触发器可能会触发。在这种情况下,将不会有请求信息开始。

简短回答是。这个问题更复杂一些。您没有包括web服务是用什么语言编写的,因此首先要保持它的高级别,并关注实现无关的方式

大多数用于编码web服务捕获请求信息的语言—设备信息、web客户端信息、ip地址(虽然不可靠)、身份验证标识(如果不是匿名访问),因此,跟踪这些数据的一种典型方法是在数据库中创建一个会话表,您可以将所有相关的请求数据写入该数据库,以用于web服务会话。然后为每个会话派生一个密钥。最后,为每个执行DML的表添加会话键列。另一种方法是拥有一个操作表(您已经拥有的)和一个匹配的日志表。操作表没有会话键列,但日志记录表有。还有其他记录活动的方法,这些只是为了证明这一点

例如,另一种方法是创建一个派生的连接类,并将其添加到web服务会话信息中。然后,可以在数据库命令执行时访问它(通常通过命令对象执行),并通过编程方式进行日志记录,而不是编写触发器


在您的特定情况下,后一种方法似乎比触发器更合适,因为当有人直接在数据库上执行DML时,或者在另一个接口而不是web服务上执行DML时,触发器可能会触发。在这种情况下,一开始就没有请求信息。

谢谢你的输入,Hubson,我想现在我已经清楚地知道我需要做什么了。谢谢你的输入,Hubson,我想现在我清楚地知道我需要做什么了。