어느 가을날의 전환점

ORACLE|권한(Grant) 자동화 본문

Database/Oracle

ORACLE|권한(Grant) 자동화

어느가을빛 2011. 8. 5. 14:34
# <유저A>의 객체를 <유저B>에게 권한 부여

BEGIN

    FOR REC IN (SELECT OBJECT_NAME, OBJECT_TYPE 
                  FROM ALL_OBJECTS 
                 WHERE OWNER='유저A
                   AND OBJECT_TYPE IN ('TABLE','VIEW','PROCEDURE','FUNCTION','PACKAGE')
                ) 
    LOOP 

        BEGIN  
        
            IF REC.OBJECT_TYPE IN ('TABLE', 'VIEW') THEN 
                    
                EXECUTE IMMEDIATE 'GRANT INSERT, UPDATE, DELETE, SELECT ON 유저A.' || REC.OBJECT_NAME || ' TO 유저B';
                
            ELSIF REC.OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION', 'PACKAGE') THEN 

                EXECUTE IMMEDIATE 'GRANT EXECUTE ON 유저A.' || REC.OBJECT_NAME||' TO 유저B';

            END IF;
            
            EXECUTE IMMEDIATE 'CREATE SYNONYM 유저B.' || REC.OBJECT_NAME || ' FOR 유저A.' || REC.OBJECT_NAME;
            
        EXCEPTION
            WHEN OTHERS THEN NULL;
            
        END;

    END LOOP; 
   
END;


Comments