一个主要的基于云的MySQL提供者不会授予主用户的SUPER权限。 提供商是Amazon RDS,但是我的问题不是专门针对Amazon RDS,而是数据库所有者/pipe理员不具备SUPER权限的一般情况。
缺lessSUPER特权意味着在创build存储过程时不能使用DEFINER子句。
这反过来又意味着,您无法将表locking为给定用户无法访问,同时通过存储过程授予相同的用户间接访问权限。
如果没有SUPER,是否有另外一种方法来实现同样的“不直接访问”安全策略?
不合逻辑的推论。
除了你自己,你不能明确地声明一个DEFINER ,这当然是毫无意义的,因为你已经是定义者了,但你仍然可以使用SQL SECURITY DEFINER | INVOKER SQL SECURITY DEFINER | INVOKER指定过程在运行时使用的安全上下文。 这个部分及其安全方面与拥有SUPER特权时没有什么不同。 唯一的区别是,如果你希望定义者是一个特定的(特权)用户,那么这个过程就可以作为该用户在定义者上下文中运行…… 你必须以DEFINER身份login才能声明过程 。