Step 6: Migrate User Account(roles) and permissions:
Run the SQL script below to generate the create statements for the database roles users:
SELECT 'CREATE ROLE ' || rolname ||CASE WHEN rolsuper THEN ' SUPERUSER' ELSE '' END ||CASE WHEN rolinherit THEN ' INHERIT' ELSE ' NOINHERIT' END ||CASE WHEN rolcreaterole THEN ' CREATEROLE' ELSE '' END ||CASE WHEN rolcreatedb THEN ' CREATEDB' ELSE '' END ||CASE WHEN rolcanlogin THEN ' LOGIN' ELSE '' END ||CASE WHEN rolreplication THEN ' REPLICATION' ELSE '' END ||' PASSWORD ''' || rolpassword || ''';' AS create_role FROM pg_authid WHERE rolname NOT LIKE 'pg_%';-- script OutPutCREATE ROLE pedscreen INHERIT LOGIN PASSWORD 'SCRAM-SHA-256$4096:ppU694zUW20Z/gLWixS0SQ==$/XPQeWrh5vK80Dx8obYGkcUZMXhFy/88CToHLF27Ne0=:pckc/aeMLkM/HeNPmAlEXpi3f95vqy0gEosRFtdi6Bs=';CREATE ROLE clarity_user INHERIT LOGIN PASSWORD 'SCRAM-SHA-256$4096:HwapqXOgXxRdo6fMgCJo8A==$45jpG/eUxP8I7/WVtz+pWNJKvZG1xbYT9XiVU5baGt4=:cT6snFn0J8fgBkuYeel3pmyXVAcYNk65XPcdgDwyO/w=';CREATE ROLE skhot INHERIT LOGIN PASSWORD 'SCRAM-SHA-256$4096:QiZZDy8guPIPCP4KJClhEQ==$CnA1gRLCCTJInVJa50MI5TjuUUrdGu1AhpM/VbtTO4I=:a7kFboWo7T0f8P/5JQ5rGLWVvlILYwc7IMzPHl3b0Xs=';CREATE ROLE postgres SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION PASSWORD 'SCRAM-SHA-256$4096:Ks1kTv5prHeToexGhuYg7w==$JncCaSBVmb9j/Hpk/1nKup6eE2u4CIDoo3PBfdVO4CI=:S3Z/L4a+uFul4s9DdNobe1Gpr6O0KEt0poZPAgTBWjs=';
Run the SQL script below to generate the create statements for the database roles permissions:
SELECT 'GRANT ' || r.rolname || ' TO ' || m.rolname || ';'FROM pg_auth_members amJOIN pg_authid r ON r.oid = am.roleidJOIN pg_authid m ON m.oid = am.memberWHERE r.rolname NOT LIKE 'pg_%' AND m.rolname NOT LIKE 'pg_%';-- Script outputGRANT pedscreen TO skhot;GRANT clarity_user TO skhot;