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

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

注意事项

  • 不允许将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。
  • 在PDB内执行GRANT语句时指定ON DATABASE选项时,仅支持赋予PDB自身的CREATE权限(用于该PDB中的模式)。不支持在Non-PDB中对PDB执行GRANT语句。
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0647.html