CREATE USER user1 IDENTIFIED BY welcome1 DEFAULT TABLESPACE users QUOTA UNLIMITED ON users; GRANT CREATE SESSION, CREATE TABLE TO user1; CREATE USER user2 IDENTIFIED BY welcome1 DEFAULT TABLESPACE users; GRANT CREATE SESSION TO user2; CONN user1/welcome1 CREATE TABLE test (description VARCHAR2(100)); INSERT INTO test VALUES ('record #1'); COMMIT; GRANT SELECT ON test TO user2; CONN user2/welcome1 SELECT * FROM user1.test; SELECT * FROM user1.test FOR UPDATE; LOCK TABLE user1.test IN EXCLUSIVE MODE; CONN user1/welcome1 REVOKE SELECT ON test FROM user2; GRANT READ ON test TO user2; CONN user2/welcome1 SELECT * FROM user1.test; SELECT * FROM user1.test FOR UPDATE; LOCK TABLE user1.test IN EXCLUSIVE MODE; -- Clean-Up CONN / AS SYSDBA DROP TABLE user1.test PURGE; DROP USER user1 CASCADE; DROP USER user2 CASCADE;