New user: ashu
Schema: Metals
create user ashu identified by ashu
default tablespace metals
temporary tablespace temp
quota unlimited on metals;
Grant create session to ashu;
Step 2 : Grant Access to All Existing Objects in a Particular Schema called METALS to new user ASHU.
BEGIN
FOR t IN (SELECT table_name FROM all_tables WHERE owner = 'METALS') LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON METALS.' || t.table_name || ' TO ASHU';
END LOOP;
END;
/
Step 3: Grant EXECUTE on all procedures and packages in schema METALS
BEGIN
FOR p IN (SELECT object_name FROM all_objects WHERE owner = 'METALS' AND object_type IN ('PROCEDURE', 'PACKAGE')) LOOP
EXECUTE IMMEDIATE 'GRANT EXECUTE ON METALS.' || p.object_name || ' TO ASHU';
END LOOP;
END;
/
Step 4: Grant SELECT on all views in schema METALS
BEGIN
FOR v IN (SELECT view_name FROM all_views WHERE owner = 'METALS') LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON METALS.' || v.view_name || ' TO ASHU';
END LOOP;
END;
/
or use below command to provide the access on Valid views only.
BEGIN
FOR v IN (SELECT object_name
FROM all_objects
WHERE owner = 'METALS'
AND object_type = 'VIEW'
AND status = 'VALID') LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON METALS.' || v.object_name || ' TO ASHU';
END LOOP;
END;
/
Verify using below queries:
col GRANTEE form a12
col OWNER form a12
col TABLE_NAME form a30
col GRANTOR form a13
col PRIVILEGE form a13
SELECT *
FROM DBA_TAB_PRIVS
WHERE GRANTEE = 'ASHU';
SELECT *
FROM DBA_ROLE_PRIVS
WHERE GRANTEE = 'ASHU';
SELECT *
FROM DBA_SYS_PRIVS
WHERE GRANTEE = 'ASHU';
No comments:
Post a Comment