我基本上想要
我以为我已经通过以下代码成为了超级用户角色:
<script async src="//jsfiddle.net/arabhossain/Lskq4nar/4/embed/"></script>
然后,该用户在架构中创建对象。但是,我在SYSADMIN上的“ DBA”用户根本看不到对象。使用角色ACCOUNTADMIN,用户可以看到对象,但不能查询它们。我的理解是ACCOUNTADMIN是顶级帐户,并且无论如何都可以拥有这些对象的所有权,因此,如果这应该是一种安全功能,我真的不理解它是如何提供很多保护的,因为它总是可以窃取所有权? / p>
我尝试将对象的所有权从ACCOUNTADMIN更改为SYSADMIN,以发现它具有阻止特权;
--grant power to engineer
grant all privileges on database dr_ev to dr_uce_role;
grant all privileges on all schemas in database dr_ev to dr_uce_role;
grant all privileges on all tables in schema dr_ev.public to dr_uce_role;
grant all privileges on all views in schema dr_ev.public to dr_uce_role;
grant select on future tables in schema dr_ev.public to dr_uce_role;
grant select on future views in schema dr_ev.public to dr_uce_role;
grant all privileges on all tables in schema dr_ev.stg to dr_uce_role;
grant all privileges on all views in schema dr_ev.stg to dr_uce_role;
grant select on future tables in schema dr_ev.stg to dr_uce_role;
grant select on future views in schema dr_ev.stg to dr_uce_role;
SQL执行错误:对安全性“ DR_EV.STG.LOAD_OPPORTUNITY”授予角色“ DR_UCE_ROLE”的特权“ DELETE”已得到依赖。必须先将其撤销。可能存在多个从属授予:使用“ SHOW GRANTS”命令查看它们。要在转移对象所有权时撤消所有从属授予,请使用便捷命令“ GRANT OWNERSHIP ON来撤回当前格兰特”。
我曾尝试与
取得所有权grant ownership on dr_ev.stg.load_opportunity to sysadmin;
确实有效-尽管它使我的超级用户无法看到这些物体。所以我给了他们
grant ownership on all tables in schema dr_ev.stg to sysadmin revoke current grants;
但是,我希望高级用户能够创建或替换此表。我相信这需要DROP TABLE特权,尽管显然我的超级用户授权不提供它,而且我不清楚应如何提供它?
我不会说我对Snowflake特权有最深刻的了解,并且想知道上面的语句grant all privileges on all tables in schema dr_ev.stg to dr_uce_role;
是否不存在于模式级别以覆盖所有表,而是实际上设置了对象级别权限,而我最初的方法太细粒度了,因为我实际上并不希望在对象级别上进行任何管理。话虽这么说,但如果该语句实际上只是设置许多对象特权的捷径,那么我在文档中仍不清楚如何以比对象更高的级别进行管理。我怎样才能实现最初的目标?
答案 0 :(得分:2)
对于这种情况,最佳实践是将所有自定义角色授予SYSADMIN角色。这使系统管理员可以执行SYSADMIN可以执行的所有操作,以及所有其他角色可以执行的所有操作。您的帖子中有很多问题,但是我认为这可以解决很多问题。
答案 1 :(得分:0)
我做的方法是创建一个超级角色“ superole”,并将sysadmin,securityadmin和accountadmin授予该角色。然后,我将超级角色附加到我想成为DBA的任何人身上。
答案 2 :(得分:0)
这可以使用ROLE到ROLE映射或通常使用“ ROLE层次结构”来实现。
const data = "hai";
const objec = {
[data]:{"dddd":"dfdfdf"}
}
console.log(objec)