我正在使用Snowflake,需要让某人能够在安全视图上运行“ get_ddl()”。他们需要扮演什么角色?
换句话说,某些角色不应在视图后面看到DDL,而其他角色则应。如何在访问权限上实现这种差异?
答案 0 :(得分:0)
https://docs.snowflake.net/manuals/user-guide/views-secure.html#interacting-with-secure-views
根据本文档,只有安全视图的所有者角色才能运行get_ddl()函数。
答案 1 :(得分:0)
雪花是一种基于角色的数据访问系统,而不是基于用户的数据访问系统(与某些其他数据库不同)。
对于需要访问安全视图DDL定义的用户,将视图拥有角色授予这些用户(这是遵循最佳实践的做法,即安全视图是通过创建自定义角色来创建和管理的,数据库对象,而不是由系统内置角色(例如sysadmin)创建的。
未被授予视图拥有角色的用户将无法访问安全视图定义,因此实现了访问特权上的差异。