Greenplum 권한 기본 명령

2140 단어 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) 테이블의 사용자 권한 취소 select'revoke all on'| | table_schema||'.'||table_name||' from username cascade; ' from  information_schema.table_privileges  where grantee='username';
2.4) 사용자가 function 권한에서 function schemaname에서 모든 것을 취소합니다.functionname from username;
2.5) 사용자 역할drop role if exists username 제거;
2.6) 캐릭터 존재 여부 판단: select * from gp_toolkit.gp_roles_assigned where rarolename = 'username'

좋은 웹페이지 즐겨찾기