snowflake-cloud-data-platform - 雪花撤销表/模式访问
问题描述
我试图为用户提供整个数据库的访问权限,但删除对具有机密数据的特定表或特定模式的访问权限,但它只是没有解决,尝试了多个 - 授予和撤销语句但徒劳无功。
这是我到目前为止测试过的。
最初,我为用户担任这个角色
GRANT ALL ON DATABASE raw TO ROLE transformer;
检查了赠款并删除了
SHOW GRANTS TO ROLE transformer;
revoke select on all tables in schema raw.<secret_schema> from role transformer;
revoke all on DATABASE raw from ROLE transformer;
开始授予对单个架构/表的访问权限,但“授予数据库使用权”只是将每个架构/表访问权限授予用户
grant usage on database raw to role transformer ; -- usage gives all tables access
grant usage on schema raw.<open_schema> to role transformer ;
grant all on schema raw.<open_schema> to role transformer ;
grant select on all tables raw.<open_schema> to role transformer ;
最后,也尝试了这些撤销,但徒劳无功
revoke select on table raw.<secret_schema>.s from ROLE transformer;
revoke usage on schema raw.<secret_schema> from role transformer;
有关更多信息,此访问权限适用于 DBT 用户和分析师用户,他们可以点击/选择/读取原始数据库,但只有 1 个模式/表不应该被访问,其余的都应该带有“未来表”子句。
解决方案
将数据库原始使用权授予角色转换器;-- 使用赋予所有表访问权限
这不是授予对表的访问权限的原因;别的东西是。您可以确认运行一个像这样的简单脚本:
use role securityadmin;
create role new_role_1;
grant role new_role_1 to user my_user;
use role sysadmin;
grant usage on database test to role new_role_1;
use role new_role_1;
select * from test.public.foo; --SQL compilation error: Object 'TEST.PUBLIC.FOO' does not exist or not authorized.
use role sysadmin;
select * from test.public.foo; -- Works
角色继承自其他角色。默认情况下,所有角色都继承自 PUBLIC 角色。有人可以授予 PUBLIC 角色该角色继承的权限吗?它是否从具有比 PUBLIC 更多权限的角色继承?
推荐阅读
- javascript - 移动设备上 document.scrollingElement.scrollTop 的准确性问题,具有粘性和收缩效果
- persistent-volumes - 从不同组件访问 kubeflow 中的持久卷
- bitbucket-server - Butbucket-server 上的自定义翻新预设
- github - 我是否正确使用了 sra-toolkit 中的 fasterq-dump?
- python - 使用字符串和数字从列表中获取值
- java - Spring Boot 服务在空闲或服务过多请求后自动关闭
- javascript - 为什么我的汉堡菜单下拉菜单不能使用 javascript 工作?
- javascript - 将标头发送到客户端后无法设置标头 - 回调
- java - 随机字符生成,而不是 GS 字符,在扫描 GS1 数据矩阵条码时摆动,延迟很小
- excel - vba LinEst 工作表函数 2019