有沒有辦法從 MySQL 觸發器中識別應用程式登錄用戶?這里我在做基于 MySQL 觸發器的審計。我需要確定哪個用戶正在對資料庫進行 CRUD 操作。通過使用USER()可以獲得資料庫用戶。但在這里我試圖識別應用程式登錄用戶。
我試過,@user但它被賦予空值。
uj5u.com熱心網友回復:
應用程式用戶不是 MySQL 資源。任何應用程式都可以將它們作為資料存盤在 MySQL 表中,但 MySQL 無法使用它來知道當前哪個應用程式用戶已通過身份驗證。應用程式如何使用該資料是針對您的應用程式定制的。
你甚至可能有例外情況。例如,管理員擁有臨時采用其他用戶身份的特權的情況并不少見。這也取決于您的應用程式,除非您告訴它,否則 MySQL 無法知道這一點。
在應用set @user='...';程式用戶通過身份驗證后,您可以在應用程式中將代碼實作到資料庫會話中。如果您始終如一地這樣做,那么該變數將在觸發器中可用。
但這不是很安全。任何客戶端都可以將該值設定為其他值。
否則,資料庫會話無法了解有關您的應用程式的任何資訊。它只知道 mysql 用戶。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/335654.html
