我对雪花很陌生。是否可以在没有选择访问底层表的情况下查询雪花Db中所有表的信息模式视图(例如、模式、表、列)。其要求是创建一个用户/帐户,该用户/帐户只能访问雪花Db的查询元数据,并且不应该对表数据有选择的访问权。请给我建议。
发布于 2019-10-08 23:11:35
来自雪花的文件:
“视图或表函数的输出取决于授予用户当前角色的权限。在查询INFORMATION_SCHEMA视图或表函数时,只返回当前角色被授予访问权限的对象。”
换句话说,在查询INFORMATION_SCHEMA视图时,您将看不到您无法访问的对象的元数据。
为了解决这个问题,您可以使用像ACCOUNTADMIN这样的角色,它具有对所有表的权限,并使用所需的INFORMATION_SCHEMA视图的结果填充一个新表。然后让您的新角色访问该表。您甚至可以在雪花中设置一个任务来定期更新表。
参考文献:
发布于 2019-10-09 04:10:12
我相信您不会在信息模式视图中看到该对象。因此,您需要访问对象的权限。
发布于 2022-11-08 06:27:18
INFORMATION_SCHEMA中的视图显示数据库中定义的对象的元数据,以及所有数据库中常见的非数据库、帐户级对象的元数据。
在INFORMATION_SCHEMA下,有17个视图可以保存数据库级对象的信息。有8个视图保存帐户级别对象的信息。
INFORMATION_SCHEMA是一个在每个数据库中自动可用的只读模式。它存储在数据库下构建的所有雪花对象的元数据。
在INFORMATION_SCHEMA上运行查询需要仓库启动和运行,这会导致雪花信用。
视图或表函数的输出取决于授予用户当前角色的权限。在查询INFORMATION_SCHEMA视图或表函数时,只返回当前角色已被授予访问权限的对象。
要使用数据库的信息模式,只需在该数据库上使用权限即可。角色将只看到他/她可以访问的信息模式中的内容。
https://stackoverflow.com/questions/58294920
复制相似问题