本节将介绍如何对Datashare
中的对象进行权限管理,例如添加/删除表
由于生产端控制着要分享的数据集,所以它可以添加/删除要分享的内容。当权限被收回时,消费端会立即失去访问数据的权限
进入etl-redshift-cluster
的Query Editor
,执行以下语句,收回对orders表的分享:
ALTER DATASHARE tpc_share REMOVE TABLE public.orders;
执行以下语句确认orders表不再被分享出去:
select * from svv_datashare_objects;
执行以下命令添加表的datashare:
ALTER DATASHARE tpc_share Add TABLE public.orders;
select * from svv_datashare_objects;
此时orders表重新被分享出去:
INCLUDENEW
关键字指定了在schema中新创建的table,view,UDF
会不会自动被分享出去,默认为False。
运行以下语句将tpc_share
的INCLUDENEW
属性设置为True:
ALTER DATASHARE tpc_share SET INCLUDENEW = TRUE for SCHEMA public;
创建一张新表进行测试验证:
CREATE TABLE public.include_new_true
(col1 int,
col2 char(1));
SELECT * FROM svv_datashare_objects;
发现这张新表被自动分享出去:
includenew
选项要谨慎开启,因为它会把schema下新建的表自动分享出去,是否开启要根据场景来判断
最后我们把这个选项先关闭:
ALTER DATASHARE tpc_share SET INCLUDENEW = FALSE for SCHEMA public;