2
2
Purpose: View to get the tables that a user group has access to
3
3
History:
4
4
2021-09-27 milindo Created
5
- 2022-08-15 saeedma8 excluded system tables
5
+ 2023-03-13 amneet13 return results specific for groups.
6
6
**********************************************************************************************/
7
7
create or replace view admin .v_get_tbl_priv_by_group as
8
8
select
9
9
t .namespace as schemaname, t .item as object, pu .groname as groupname
10
- , decode(charindex(' r' ,split_part(split_part(array_to_string(t .relacl , ' |' ),pu .groname ,2 ) ,' /' ,1 )),0 ,false,true) as sel
11
- , decode(charindex(' w' ,split_part(split_part(array_to_string(t .relacl , ' |' ),pu .groname ,2 ) ,' /' ,1 )),0 ,false,true) as upd
12
- , decode(charindex(' a' ,split_part(split_part(array_to_string(t .relacl , ' |' ),pu .groname ,2 ) ,' /' ,1 )),0 ,false,true) as ins
13
- , decode(charindex(' d' ,split_part(split_part(array_to_string(t .relacl , ' |' ),pu .groname ,2 ) ,' /' ,1 )),0 ,false,true) as del
14
- , decode(charindex(' D' ,split_part(split_part(array_to_string(t .relacl , ' |' ),pu .groname ,2 ) ,' /' ,1 )),0 ,false,true) as drp
15
- , decode(charindex(' R' ,split_part(split_part(array_to_string(t .relacl , ' |' ),pu .groname ,2 ) ,' /' ,1 )),0 ,false,true) as ref
10
+ , decode(charindex(' r' ,split_part(split_part(array_to_string(t .relacl , ' |' ), ' group ' || pu .groname || ' = ' ,2 ) ,' /' ,1 )),0 ,false,true) as sel
11
+ , decode(charindex(' w' ,split_part(split_part(array_to_string(t .relacl , ' |' ), ' group ' || pu .groname || ' = ' ,2 ) ,' /' ,1 )),0 ,false,true) as upd
12
+ , decode(charindex(' a' ,split_part(split_part(array_to_string(t .relacl , ' |' ), ' group ' || pu .groname || ' = ' ,2 ) ,' /' ,1 )),0 ,false,true) as ins
13
+ , decode(charindex(' d' ,split_part(split_part(array_to_string(t .relacl , ' |' ), ' group ' || pu .groname || ' = ' ,2 ) ,' /' ,1 )),0 ,false,true) as del
14
+ , decode(charindex(' D' ,split_part(split_part(array_to_string(t .relacl , ' |' ), ' group ' || pu .groname || ' = ' ,2 ) ,' /' ,1 )),0 ,false,true) as drp
15
+ , decode(charindex(' R' ,split_part(split_part(array_to_string(t .relacl , ' |' ), ' group ' || pu .groname || ' = ' ,2 ) ,' /' ,1 )),0 ,false,true) as ref
16
16
from
17
17
(select
18
18
use .usename as subject,
29
29
where c .relowner = use .usesysid
30
30
and nsp .nspname !~ ' ^information_schema|catalog_history|pg_'
31
31
) t
32
- join pg_group pu on array_to_string(t .relacl , ' |' ) like ' %' || pu .groname || ' %'
33
- ;
32
+ join pg_group pu on array_to_string(t .relacl , ' |' ) like ' %group ' || pu .groname || ' =%' ;
0 commit comments