数据库整库grant授权的实际作用是什么?为何未来对象授权未生效
第一组数据库级授权语句的实际作用
你执行的4条数据库级授权实际生效范围如下:
grant usage on all schemas in database test to role dev;:为dev角色授予test数据库内执行语句时已经存在的所有schema的usage权限,不包含后续新建的schemagrant usage on future schemas in database test to role dev;:为dev角色授予test数据库内执行语句后新建的所有schema的usage权限,这条规则会长期生效grant select on all tables in database test to role dev;:为dev角色授予test数据库内执行语句时已经存在的所有schema下的所有已存在表的select权限,不包含后续新建的表grant select on future tables in database test to role dev;:为dev角色授予test数据库内执行语句后新建的schema下,后续新创建的所有表的select权限,不覆盖执行语句前就已存在的schema下的新表
整库未来对象授权未生效的原因
这是数据库未来授权的粒度规则导致的:数据库级别的未来表授权,仅作用于授权执行之后新创建的schema下的未来表,不会作用于授权执行前就已经存在的schema下的未来表。
你遇到的情况就是test.dw schema是在执行第一组授权语句之前就已经存在的,所以数据库级的未来表授权管不到这个schema下后续新建的表。而你后续单独给test.dw这个已存在的schema添加了schema级的未来表授权,刚好覆盖了这个场景,因此授权就正常生效了。
内容的提问来源于stack exchange,提问作者nobody
相关产品推荐
相关产品推荐

