2016-09-17 76 views
1

应用A通过Web服务Y.服务Ÿ通信数据库X能够插入,更新和删除与数据操作数据库X.很多人授权可以使用应用程序A和连接到数据库X通过服务Y. 开发者Q想要创建数据库触发器来记录关于数据库X中的表中的条目和更新的一些信息,包括设备ID或IP。开发人员Q能否通过建立的通过Y服务连接到数据库X来访问某些设备身份? 如果他/她不能,是否有解决方法?记录设备ID

回答

0

简短回答是。这是多么牵扯一点。您没有包括编写Web服务的语言,因此保持高水平,并首先关注实现不可知的方式。

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

的另一种方式,例如OO,是创建你的Web服务的会话信息添加派生连接类。然后可以在数据库命令执行时访问它,通常通过命令对象完成,而不是通过编程触发器以编程方式执行日志记录。

在您的特定情况下,后者的做法似乎比触发更合适,因为当有人做DML在数据库中直接,或其他接口而不是Web服务触发器可能触发。在这种情况下,不会有请求信息开始。

+0

感谢您的输入Hubson,我想现在我已清楚了解我需要做什么。 –