为GP一个schema下所有表授权的函数

来源:互联网 发布:产品线数据分析 编辑:程序博客网 时间:2024/06/07 06:26
CREATE OR REPLACE FUNCTION setTablePrivilege(schemaname text, role_name text)  RETURNS text AS$BODY$DECLARE sqlstr text; aTable RECORD; privilegeStr text; fullname text;BEGINsqlstr:='select schemaname,tablename from pg_tables where schemaname ='''||schemaname||'''';FOR aTable IN execute sqlstr LOOP     fullname := aTable.schemaname||'.'||aTable.tablename;     privilegeStr :='GRANT SELECT ON TABLE ' || fullname || ' TO ' || role_name || ';';     execute  privilegeStr;end loop;return 'ok';END;$BODY$LANGUAGE 'plpgsql' VOLATILE;

原创粉丝点击