Snowflake 遵循基于角色的访问控制 (RBAC)范式。RBAC 的最佳实践是让功能和访问角色管理用户和客户端或访问权限。在最坏的情况下,这会产生各种相互继承权限的角色。从本质上讲,一个人很容易失明。
在雪花中,对角色和用户的授权存储在ACCESS_USAGE.GRANTS_TO_ROLES
和中ACCESS_USAGE.GRANTS_TO_USERS
。自动识别角色的数据管理员/所有者的正确方法是什么(如果未在第 3 方工具中明确标记)?
我想到的选项:
- 递归查找
OWNERSHIP
角色的角色权限(会产生很多误报) - 递归发现对角色具有高级权限的服务帐户并查找服务帐户所有者
- 查找执行查询的使用模式(实际上可能是消费者多于生产者)