1、创建用户角色
create user XXX with password \'XXXXXX\'; --或者 create role XXX with password \'XXXXX\' login;
注意:使用create role时,需要携带 login参数,否则将无法登录,如果忘记可使用命令修改:
alter role XXX login;
2、创建数据库:
1 CREATE DATABASE yysg 2 WITH OWNER = yysg 3 ENCODING = \'UTF8\' 4 TABLESPACE = pg_default 5 LC_COLLATE = \'en_US.UTF-8\' 6 LC_CTYPE = \'en_US.UTF-8\' 7 CONNECTION LIMIT = -1 8 9 TEMPLATE template0; 10 11 GRANT CONNECT, TEMPORARY ON DATABASE yysg TO public; 12 GRANT ALL ON DATABASE yysg TO yysg; 13 GRANT ALL ON DATABASE yysg TO postgres; 14 15 COMMENT ON DATABASE yysg 16 IS \'XXX database name\';
注意:如果出现如下错误,请加上: TEMPLATE template0;
ERROR: new collation (zh_CN.UTF-8) is incompatible with the collation of the template database (en_US.UTF8) HINT: Use the same collation as in the template database, or use template0 as template.
3、修改整个schema所有表owner
DO $$ DECLARE r record; i int; v_schema text[] := \'{public}\'; v_new_owner varchar := \'yysg\'; BEGIN FOR r IN SELECT \'ALTER TABLE "\' || table_schema || \'"."\' || table_name || \'" OWNER TO \' || v_new_owner || \';\' AS a FROM information_schema.tables WHERE table_schema = ANY (v_schema) UNION ALL SELECT \'ALTER TABLE "\' || sequence_schema || \'"."\' || sequence_name || \'" OWNER TO \' || v_new_owner || \';\' AS a FROM information_schema.sequences WHERE sequence_schema = ANY (v_schema) UNION ALL SELECT \'ALTER TABLE "\' || table_schema || \'"."\' || table_name || \'" OWNER TO \' || v_new_owner || \';\' AS a FROM information_schema.views WHERE table_schema = ANY (v_schema) UNION ALL SELECT \'ALTER FUNCTION "\' || nsp.nspname || \'"."\' || p.proname || \'"(\' || pg_get_function_identity_arguments(p.oid) || \') OWNER TO \' || v_new_owner || \';\' AS a FROM pg_proc p JOIN pg_namespace nsp ON p.pronamespace = nsp.oid WHERE nsp.nspname = ANY (v_schema) UNION ALL SELECT \'ALTER DATABASE "\' || current_database() || \'" OWNER TO \' || v_new_owner LOOP EXECUTE r.a; END LOOP; FOR i IN array_lower(v_schema, 1)..array_upper(v_schema, 1) LOOP EXECUTE \'ALTER SCHEMA "\' || v_schema[i] || \'" OWNER TO \' || v_new_owner; END LOOP; END $$;