have you tried assigning roles at the database level?
GRANT CONNECT ON DATABASE {database_name} TO {USER};
GRANT TEMPORARY ON DATABASE {database_name} TO {USER};
GRANT CREATE ON DATABASE {database_name} TO {USER};