我在一家公司工作,其中一个团队管理数据库,而其他团队则从那里使用表/视图。有时,视图会被重构,这可能会破坏其他团队的工作。
是否可以保护某些列,使它们不能简单地重命名/删除?或者至少有一条日志消息告诉想要这样做的人另一个团队依赖它?
答案 0 :(得分:1)
在Snowflake中,只有具有角色角色的用户有权通过更改其定义来更新视图,从而可以在指定的视图上进行更改。如果特定角色具有替换视图定义的特权,则没有机制可以阻止它们重命名或删除列。
您可以在Snowflake Information_schema中的QUERY_HISTORY函数中查看日志。该函数提供了有关哪个用户运行查询以及运行时间的大量信息。如下查询将带来适当的信息:
select user_name, role_name, query_text, start_time, end_time from table(information_schema.query_history())
其中query_text喜欢'%replace view%' 按start_time desc排序;
答案 1 :(得分:1)
更改视图的特权为全部或全部。它不限制角色可以或不能更改,删除,添加等的列。但是,由于Snowflake允许将视图用作另一个视图的一部分,因此这可以构成组织整体方法的一部分,以执行您想要的工作。 / p>
例如,创建一个包含所有受保护列的基本视图。严格控制对哪些角色可以更改基本视图的访问。从基本视图的顶部创建视图,以减少特权级别较低的角色。