import sys from configparser import ConfigParser from sqlalchemy import create_engine conf_file = sys.argv[1] conf = ConfigParser() conf.read(conf_file) cf = conf['main'] sql_table_tpl = 'GRANT SELECT ON {table} TO ' + cf['user'] sql_schema_tpl = 'GRANT USAGE ON SCHEMA {schema} TO ' + cf['user'] for line in cf: if line.find('db_url') < 0: continue db = line.strip().replace('_db_url', '') print(f'Database {db}') db_url = cf[line] engine = create_engine(db_url) schema_line = db + '_schemas' for schema in cf[schema_line].split(): sql = sql_schema_tpl.format(schema=schema) print(sql) engine.execute(sql) table_line = db + '_tables' for tablename in cf[table_line].split(): sql = sql_table_tpl.format(table=tablename) print(sql) engine.execute(sql)