Interestingly, it looks like running USE SECONDARY ROLES NONE;
may have solved the issue.
It looks like by default, secondary roles is set to ALL
, which means that despite running things as TEST_ROLE
, snowflake was really accessing the data via ACCOUNTADMIN
which was a secondary role.