Mysql
如何在沒有 SUPER 權限的情況下實現表安全?
基於雲的 MySQL 的主要供應商不授予主使用者超級權限。提供者是 Amazon RDS,但我的問題不是專門針對 Amazon RDS,而是針對沒有超級權限的數據庫所有者/管理員的一般情況。
缺少 SUPER 權限意味著您在創建儲存過程時不能使用 DEFINER 子句。
這反過來意味著,您不能鎖定您的表以使給定使用者無法訪問,同時通過儲存過程授予該使用者間接訪問權限。
在沒有 SUPER 的情況下,是否有另一種方法可以實現相同的“無直接表訪問”安全策略?
它不跟隨。
您不能顯式聲明
DEFINER
除您自己之外的其他人,這當然沒有意義,因為您已經是定義者……但您仍然可以使用它SQL SECURITY DEFINER | INVOKER
來指定過程在執行時使用的安全上下文。這部分及其安全方面與您擁有SUPER
特權時沒有任何不同。唯一的區別是,如果您希望定義者成為特定(特權)使用者,以便該過程可以在定義者上下文中以該使用者身份執行……您必須以 DEFINER 身份實際登錄才能聲明該過程。