Безопасность в Iceberg-Lakehouse Берем Iceberg REST Catalog в виде Apache Polaris. Коннектим его к Трино как каталог. При этом передаем общие принципала и креды. Все подключается и успешно создаем, удаляем, работаем со схемами и таблицами. Теперь хотим подцепиться к тому же каталогу через PyIceberg. С теми же кредами. И Ловим 401 на попытке прочитать таблицу? Почему? Потому что PyIceberg честный и спрашивает креды на значимые действия с таблицей. Подчинаяется ролевой модели поляриса в этом плане. А трино просто взял metadata.json из каталога и пошел сам по S3 расшифровывать айсберговскую дату и метадату, никакого разрешения от каталога ему для этого не нужно. Ну и свою ролевую модель поверх наложил. Одна и та же таблица, одна схема подключения, но два представления о прекрасном от двух движков данных. Напоследок - доступные роли в Полярисе, грантов которых PyIceberg от нас ждет. Грантуется это исключительно через CURL. # Доступные права в поларис `[ CATALOG_MANAGE_ACCESS, CATALOG_MANAGE_CONTENT, CATALOG_MANAGE_METADATA, NAMESPACE_CREATE, TABLE_CREATE, VIEW_CREATE, NAMESPACE_DROP, TABLE_DROP, VIEW_DROP, NAMESPACE_LIST, TABLE_LIST, VIEW_LIST, NAMESPACE_READ_PROPERTIES, TABLE_READ_PROPERTIES, VIEW_READ_PROPERTIES, NAMESPACE_WRITE_PROPERTIES, TABLE_WRITE_PROPERTIES, VIEW_WRITE_PROPERTIES, TABLE_READ_DATA, TABLE_WRITE_DATA, NAMESPACE_FULL_METADATA, TABLE_FULL_METADATA, VIEW_FULL_METADATA ]` В другом каталоге Iceberg REST роли могут быть другие. В JDBC/Hive каталогах - вообще своя атмосфера.