@@ -600,7 +600,33 @@ def test_checkdb_with_least_privileges(self):
600
600
'GRANT EXECUTE ON FUNCTION bt_index_check(regclass, bool) TO backup; '
601
601
'GRANT EXECUTE ON FUNCTION pg_catalog.set_config(text, text, boolean) TO backup;'
602
602
)
603
- # >= 10
603
+ # PG 10
604
+ elif self .get_version (node ) > 100000 and self .get_version (node ) < 110000 :
605
+ node .safe_psql (
606
+ 'backupdb' ,
607
+ 'CREATE ROLE backup WITH LOGIN; '
608
+ 'GRANT CONNECT ON DATABASE backupdb to backup; '
609
+ 'GRANT USAGE ON SCHEMA pg_catalog TO backup; '
610
+ 'GRANT USAGE ON SCHEMA public TO backup; '
611
+ 'GRANT SELECT ON TABLE pg_catalog.pg_proc TO backup; '
612
+ 'GRANT SELECT ON TABLE pg_catalog.pg_extension TO backup; '
613
+ 'GRANT SELECT ON TABLE pg_catalog.pg_database TO backup; '
614
+ 'GRANT SELECT ON TABLE pg_catalog.pg_am TO backup; '
615
+ 'GRANT SELECT ON TABLE pg_catalog.pg_class TO backup; '
616
+ 'GRANT SELECT ON TABLE pg_catalog.pg_index TO backup; '
617
+ 'GRANT SELECT ON TABLE pg_catalog.pg_namespace TO backup; '
618
+ 'GRANT EXECUTE ON FUNCTION pg_catalog.current_setting(text) TO backup; '
619
+ 'GRANT EXECUTE ON FUNCTION pg_catalog.nameeq(name, name) TO backup; '
620
+ 'GRANT EXECUTE ON FUNCTION pg_catalog.namene(name, name) TO backup; '
621
+ 'GRANT EXECUTE ON FUNCTION pg_catalog.int8(integer) TO backup; '
622
+ 'GRANT EXECUTE ON FUNCTION pg_catalog.oideq(oid, oid) TO backup; '
623
+ 'GRANT EXECUTE ON FUNCTION pg_catalog.charne("char", "char") TO backup; '
624
+ 'GRANT EXECUTE ON FUNCTION pg_catalog.pg_is_in_recovery() TO backup; '
625
+ 'GRANT EXECUTE ON FUNCTION pg_catalog.pg_control_system() TO backup; '
626
+ 'GRANT EXECUTE ON FUNCTION bt_index_check(regclass) TO backup; '
627
+ 'GRANT EXECUTE ON FUNCTION pg_catalog.set_config(text, text, boolean) TO backup;'
628
+ )
629
+ # >= 11
604
630
else :
605
631
node .safe_psql (
606
632
'backupdb' ,
0 commit comments