权限管理 - Add / Remove Objects

本节将介绍如何对Datashare中的对象进行权限管理,例如添加/删除表
由于生产端控制着要分享的数据集,所以它可以添加/删除要分享的内容。当权限被收回时,消费端会立即失去访问数据的权限

停止表的Datashare

进入etl-redshift-clusterQuery Editor,执行以下语句,收回对orders表的分享:

ALTER DATASHARE tpc_share REMOVE TABLE public.orders;

执行以下语句确认orders表不再被分享出去:

select * from svv_datashare_objects;

image-20230820193621021

添加表的Datashare

执行以下命令添加表的datashare:

ALTER DATASHARE tpc_share Add TABLE public.orders;
select * from svv_datashare_objects;

此时orders表重新被分享出去:

image-20230820193658406

INCLUDENEW

INCLUDENEW关键字指定了在schema中新创建的table,view,UDF会不会自动被分享出去,默认为False。

运行以下语句将tpc_shareINCLUDENEW属性设置为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;

发现这张新表被自动分享出去:

image-20230820193828913

includenew选项要谨慎开启,因为它会把schema下新建的表自动分享出去,是否开启要根据场景来判断

最后我们把这个选项先关闭:

ALTER DATASHARE tpc_share  SET INCLUDENEW = FALSE  for SCHEMA public;