Greenplum/Postgresql 我可以授予用户截断以 tmp_ 开头的表的权限吗?

Greenplum/Postgresql Can I grant a user truncate privileges on tables start with tmp_?

我想创建一个 user:etl_user 来做 etl 工作,所以我授予 select、更新、插入权限给 etl_user,但有时也需要截断,但为了安全,我只想在特定的 table 上授予截断,例如 table 名称以 tmp_ 开头。

有什么想法吗?提前致谢。

通常在这种情况下,bash 会有所帮助

for tbl in `psql -qAt -c "select schemaname || '.' || tablename
    from pg_tables
    where tablename like 'tmp_%';" -d database_name`; 
do 
    psql -c "grant truncate on $tbl to etl_user" -d database_name ; 
done