SELECT DISTINCT 'GRANT DELETE ON ' || O.NAME || ’ TO ’ || K.NAME FROM KASUTAJA_GRUPIS K, GRUPI_OIGUSED O WHERE K.GR_NIMI=O.GR_NIMI AND O.OIGUSED LIKE ’%D%’ AND O.OIGUSED !=’SUDI’ AND K.ALATES<=SYSDATE AND (K.KUNI IS NULL OR K.KUNI>=SYSDATE) AND O.ALATES<=SYSDATE AND (O.KUNI IS NULL OR O.KUNI>=SYSDATE) UNION SELECT DISTINCT 'GRANT UPDATE ON ' || O.NAME || ’ TO ’ || K.NAME FROM KASUTAJA_GRUPIS K, GRUPI_OIGUSED O WHERE K.GR_NIMI=O.GR_NIMI AND O.OIGUSED LIKE ’%U%’ AND O.OIGUSED !=’SUDI’ AND K.ALATES<=SYSDATE AND (K.KUNI IS NULL OR K.KUNI>=SYSDATE) AND O.ALATES<=SYSDATE AND (O.KUNI IS NULL OR O.KUNI>=SYSDATE) UNION SELECT DISTINCT 'GRANT INSERT ON ' || K.NAME || ’ TO ’ || O.NAME FROM KASUTAJA_GRUPIS K, GRUPI_OIGUSED O WHERE K.GR_NIMI=O.GR_NIMI AND O.OIGUSED LIKE ’%I%’ AND O.OIGUSED !=’SUDI’ AND K.ALATES<=SYSDATE AND (K.KUNI IS NULL OR K.KUNI>=SYSDATE) AND O.ALATES<=SYSDATE AND (O.KUNI IS NULL OR O.KUNI>=SYSDATE) UNION SELECT DISTINCT 'GRANT SELECT ON ' || O.NAME || ’ TO ’ || K.NAME FROM KASUTAJA_GRUPIS K, GRUPI_OIGUSED O WHERE K.GR_NIMI=O.GR_NIMI AND O.OIGUSED LIKE ’%S%’ AND O.OIGUSED !=’SUDI’ AND K.ALATES<=SYSDATE AND (K.KUNI IS NULL OR K.KUNI>=SYSDATE) AND O.ALATES<=SYSDATE AND (O.KUNI IS NULL OR O.KUNI>=SYSDATE) UNION SELECT DISTINCT 'GRANT ALL ON ' || O.NAME || ’ TO ’ || K.NAME FROM KASUTAJA_GRUPIS K, GRUPI_OIGUSED O WHERE K.GR_NIMI=O.GR_NIMI AND O.OIGUSED =’SUDI’ AND K.ALATES<=SYSDATE AND (K.KUNI IS NULL OR K.KUNI>=SYSDATE) AND O.ALATES<=SYSDATE AND (O.KUNI IS NULL OR O.KUNI>=SYSDATE) UNION SELECT DISTINCT ’REOVKE DELETE ON ’ || K.NAME || ' FROM ' || O.NAME FROM SYSUSERAUTH K, SYSTABLES O WHERE O.NAME NOT LIKE 'SYS%' AND K.NAME NOT LIKE'SYS%' AND NOT EXISTS (SELECT 1 FROM GRUPI_OIGUSED X, KASUTAJA_GRUPIS Y WHERE X.OIGUSED LIKE '%D%' AND X.GR_NIMI=Y.GR_NIMI AND X.NAME=O.NAME AND Y.NAME=K.NAME AND X.ALATES<=SYSDATE AND (X.KUNI IS NULL OR X.KUNI>=SYSDATE)) UNION SELECT DISTINCT 'REVOKE SELETC ON ' || O.NAME || ' FROM ' || K.NAME FROM SYSUSERAUTH K, SYSTABLES O WHERE O.NAME NOT LIKE 'SYS%' AND K.NAME NOT LIKE'SYS%' AND NOT EXISTS (SELECT 1 FROM GRUPI_OIGUSED X, KASUTAJA_GRUPIS Y WHERE X.OIGUSED LIKE '%S%' AND X.GR_NIMI=Y.GR_NIMI AND X.NAME=O.NAME AND Y.NAME=K.NAME AND X.ALATES<=SYSDATE AND (X.KUNI IS NULL OR X.KUNI>=SYSDATE)) UNION SELECT DISTINCT 'REVOKE INSSERT ON ' || K.NAME || ' FROM ' || O.NAME FROM SYSUSERAUTH K, SYSTABLES O WHERE O.NAME NOT LIKE 'SYS%' AND K.NAME NOT LIKE'SYS%' AND NOT EXISTS (SELECT 1 FROM GRUPI_OIGUSED X, KASUTAJA_GRUPIS Y WHERE X.OIGUSED LIKE '%I%' AND X.GR_NIMI=Y.GR_NIMI AND X.NAME=O.NAME AND Y.NAME=K.NAME AND X.ALATES<=SYSDATE AND (X.KUNI IS NULL OR X.KUNI>=SYSDATE)) UNION SELECT DISTINCT ’REVOKE UPDATE ON ’ || K.NAME || ' FROM ' || O.NAME FROM SYSUSERAUTH K, SYSTABLES O WHERE O.NAME NOT LIKE 'SYS%' AND K.NAME NOT LIKE'SYS%' AND NOT EXISTS (SELECT 1 FROM GRUPI_OIGUSED X, KASUTAJA_GRUPIS Y WHERE X.OIGUSED LIKE '%U%' AND X.GR_NIMI=Y.GR_NIMI AND X.NAME=O.NAME AND Y.NAME=K.NAME AND X.ALATES<=SYSDATE AND (X.KUNI IS NULL OR X.KUNI>=SYSDATE)) ORDER BY K.NAME, O.NAME;