Source code for sqldbclient.dialects.postgresql.utils

from sqldbclient.sql_executor import SqlExecutor


[docs]def grant_access( object_name: str, object_schema: str, user_name: str, sql_executor: SqlExecutor, privilege: str = 'SELECT' ) -> None: """Grants privilege on object to user :param object_name: object name in database :param object_schema: object schema in database :param user_name: user_name in database :param sql_executor: instance of SqlExecutor :param privilege: one of { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER } """ with sql_executor: sql_executor.execute(f''' GRANT USAGE ON SCHEMA "{object_schema}" TO "{user_name}" ''') sql_executor.execute(f''' GRANT {privilege} ON "{object_schema}"."{object_name}" TO "{user_name}" ''') sql_executor.commit()