2016-09-17 78 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,我想現在我已清楚瞭解我需要做什麼。 –