云数据库 GAUSSDB-GRANT:注意事项

时间:2024-11-13 14:46:22

注意事项

  • 不允许将ANY权限授予PUBLIC,也不允许从PUBLIC回收ANY权限。
  • ANY权限属于数据库内的权限,只对授予该权限的数据库内的对象有效,例如SELECT ANY TABLE只允许用户查看当前数据库内的所有用户表数据,对其他数据库内的用户表无查看权限。
  • ANY权限与原有的权限相互无影响。
  • 如果用户被授予CREATE ANY TABLE权限,在同名模式下创建表的所有者是该同名模式的所有者,用户对表进行其他操作时,需要授予相应的操作权限。与此类似的还有CREATE ANY FUNCTION、CREATE ANY PACKAGE、CREATE ANY TYPE、CREATE ANY SEQUENCE和CREATE ANY INDEX,在同名模式下创建的对象的所有者是同名模式的所有者;而对于CREATE ANY TRIGGER和CREATE ANY SYNONYM,在同名模式下创建的对象的所有者为创建者。
  • 需要谨慎授予用户CREATE ANY FUNCTION或CREATE ANY PACKAGE的权限,以免其他用户利用DEFINER类型的函数或PACKAGE进行权限提升。
  • 通过GRANT授予用户使用表的权限时,如果用户使用不当,可能会通过ALTER语法在表的默认值、约束增加表达式、创建索引在索引上增加表达式等操作导致权限被利用的风险。
  • 通过GRANT授予用户使用TRIGGER的权限时,如果用户使用不当,可能通过WHEN条件创建表达式,当触发器被触发时,存在权限被利用的风险。
  • 给用户赋权时,需要特别注意定义者函数/PACKAGE,定义者函数/PACKAGE会使用函数/PACKAGE的owner权限执行,若赋权不当(包括GRANT ROLE TO ROLE),则存在权限被利用风险。
  • 不要把对象的权限赋予给过多的用户,可以根据业务需求使用角色或PUBLIC。
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0637.html