Greenplum 权限基本命令

创建权限问题:

1.1)创建role   CREATE ROLE "yfkj" CREATEDB;

1.2)  创建Schema  CREATE SCHEMA IF NOT EXISTS fiproduct_v_${tenant};

1.3)  给 schema  赋权 GRANT USAGE ON SCHEMA uorders_v_${tenant} TO yfkj WITH GRANT OPTION;

1.4)function  给表赋权 :

CREATE OR REPLACE FUNCTION "public"."grant_on_all_tables"(IN schemas text, IN usr text, IN select_or_insert text) RETURNS SETOF "text"
	AS $BODY$
declare
   r record ;
   grantstmt text;
begin
   for r in select * from pg_class pc, pg_namespace nsp
       where pc.relnamespace = nsp.oid AND pc.relkind='v' AND nsp.nspname = schemas
   loop
     grantstmt = 'GRANT '||quote_ident(select_or_insert)||' ON "'|| quote_ident(schemas) || '".' || quote_ident(r.relname)|| ' to "' || quote_ident(usr) || '"';
     EXECUTE grantstmt;
     return next grantstmt;
   end loop;
end;
$BODY$
	LANGUAGE plpgsql

1.5)给表赋权具体   select grant_on_all_tables('uorders_v_${tenant}','yfkj','select');

1.6)做数仓的时候给某些表做视图处理:

DROP VIEW IF EXISTS "fiproduct_v_${tenant}"."aa_billhistory";
CREATE VIEW "fiproduct_v_${tenant}"."aa_billhistory" AS
 SELECT * FROM "fiproduct"."aa_billhistory" t1,
( SELECT id as ids from "fiproduct"."tenant"
  where tenantcenter_id='${tenant}') t_id
  where t1.tenant_id=t_id.ids;

撤销权限问题:

2.1) 撤销用户在数据库级别的权限  revoke  all  on  database  databasename   from  username;

2.2)撤销所有在schem 中的权限  revoke all on schema schema1,schema2 from username;

2.3)撤销用户在table 上的权限  select 'revoke all on '||table_schema||'.'||table_name||' from username cascade; ' from 
information_schema.table_privileges 
where grantee='username';

2.4)撤销用户在function 权限  revoke all  on function schemaname.functionname from username;

2.5)移除用户角色  drop role if exists username;

2.6)判断角色是否存在:select * from gp_toolkit.gp_roles_assigned where rarolename = 'username'

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值