Permissions
GRANT SELECT 到 postgresql 中的所有表
是否有一種方法可以將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
從特權使用者執行,它就像一個魅力。