Permissions

GRANT SELECT 到 postgresql 中的所有表

  • November 23, 2021

是否有一種方法可以將SELECT 權限授予新使用者postgresql?

可以實現以下虛擬碼的東西:

GRANT SELECT ON TABLE * TO my_new_user;

我認為從 9.0 開始,postgres 確實具有授予模式中所有表(以及其他對象)權限的語法,這可能會有所幫助:

GRANT SELECT ON ALL TABLES IN SCHEMA public TO user;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO user;

這是連結

我的(非單線)解決方案:

#!/bin/bash

for table in `echo "SELECT schemaname || '.' || relname FROM pg_stat_user_tables;" | psql -A -t my_database_name`;
do
   echo "GRANT SELECT ON TABLE $table to my_new_user;"
   echo "GRANT SELECT ON TABLE $table to my_new_user;" | psql my_database_name
done

從特權使用者執行,它就像一個魅力。

引用自:https://serverfault.com/questions/60508