可以通过在视图名称前添加数据集的名称来查询视图的元数据,以了解更多关于视图的信息。同时,通过使用用户定义函数(UDF)来解决这个问题。下面是一个示例代码:
CREATE TEMP FUNCTION
query_view_without_permission(view_name STRING)
RETURNS ARRAY
LANGUAGE js AS """
var query;
var options = { useLegacySql: false };
var statement;
query = `SELECT * FROM `+view_name+``;
try {
var results = BigQuery.Jobs.query(query, options);
var info= results.jobStatistics;
statement= 'View query succeeded ' + info.queryPlan.executionStages;
} catch (err) {
statement= err.message;
}
return statement;
""";
使用上述函数,查询用户没有权限访问的基础表的视图的元数据(如执行计划等)。在函数中,可以指定使用Legacy SQL或Standard SQL来查询视图。函数的返回类型可根据需求作出相应修改。