Для предоставления таких разрешений, как выбор привилегий, необходимо, чтобы у вас сначала были такие разрешения.
Согласно веб-сайту Vertica, для получения права GRANT требуется:
- Суперпользователь может предоставлять привилегии для всех типов объектов другим пользователям.
- Владелец объекта может предоставлять привилегии для объекта другим пользователям, используя необязательное условие WITH GRANT OPTION.
Псевдо-решение
В зависимости от того, кому нужен доступ , вы можете использовать имя пользователя, роль или PUBLIC (все).
Вотнекоторые примеры утверждений - так как я сам не работал с Vertica, я не могу проверить это
GRANT SELECT on all tables in schema myschema TO [user/role/PUBLIC] WITH GRANT OPTION;
GRANT PRIVILEGE
ИЛИ
GRANT SELECT on schema.TABLENAME TO [user/role/PUBLIC] WITH GRANT OPTION;
GRANT PRIVILEGE
, это может также потребовать GRANT USAGE также на схеме
Обработка запроса с Python
И обработка его через sqlalchemy в скрипте Python (см. этот вопрос для уточнений):
sSQL = "my sql grant statement(s)"
with oSuperEngine.begin() as conn:
conn.execute(sSQL)
conn.execute("COMMIT")