Amazon redshift 红移:截断由其他用户创建的表

Amazon redshift 红移:截断由其他用户创建的表,amazon-redshift,truncate,privileges,grant,dml,Amazon Redshift,Truncate,Privileges,Grant,Dml,我试图在红移中截断一个表,但它抛出了以下错误- SQL错误[500310][42501]:Amazon无效操作:必须 是关系表的所有者 我已经将表上的所有权限授予了用户。正如通过在线文档检查的红移,我不能像现在在PostgreSQL中启用的那样显式授予truncate表访问权限。是否有一种方法或最佳实践来处理这种情况?正如您所说,只有表所有者或超级用户才能截断表。有几种选择 将表更改为需要截断的用户所拥有,但这可能不满足其他约束 将表更改为当前用户、截断并将其更改回前一个用户(需要删除权限) 删

我试图在红移中截断一个表,但它抛出了以下错误-

SQL错误[500310][42501]:Amazon无效操作:必须 是关系表的所有者


我已经将表上的所有权限授予了用户。正如通过在线文档检查的红移,我不能像现在在PostgreSQL中启用的那样显式授予truncate表访问权限。是否有一种方法或最佳实践来处理这种情况?

正如您所说,只有表所有者或超级用户才能截断表。有几种选择

  • 将表更改为需要截断的用户所拥有,但这可能不满足其他约束
  • 将表更改为当前用户、截断并将其更改回前一个用户(需要删除权限)
  • 删除并重新创建表,但这可能会破坏依赖关系
  • 创建一个与原始表类似的表,对新表执行ALTER table APPEND,然后删除新表(一些限制,如无标识列)