如何在不新建角色的情况下让John拥有sales与marketing的完整数据访问权限?
解决John的跨Schema访问权限问题
问题背景
现有两个角色sales、marketing,两个数据库schemasalesData、marketingData,权限配置语句如下:
grant select on salesData to sales; deny select on marketingData to sales; grant select on marketingData to marketing;
John作为跨部门经理,同时被分配了sales和marketing两个角色,但由于权限规则中Deny优先级高于Grant,sales角色的deny select on marketingData限制导致John无法访问marketingData。
不新建角色的解决方案
方案1:直接给John授予marketingData的SELECT权限
直接为John用户单独配置marketingData的访问权限,用户级别的权限会覆盖角色的Deny限制。执行以下SQL:
grant select on marketingData to John;
这种方式适合John需要保留sales角色其他权限的场景。
方案2:移除sales角色,单独授予salesData权限
如果John不需要sales角色的其他权限,仅需访问salesData,可以移除他的sales角色,直接授予salesData的SELECT权限,同时保留marketing角色。执行以下SQL:
revoke sales from John; grant select on salesData to John;
这样John既可以访问salesData,又能通过marketing角色正常访问marketingData,避开了Deny规则的影响。
内容的提问来源于stack exchange,提问作者QSBK
相关产品推荐
相关产品推荐

