Below example show how grant and revoke work for a user in Oracle:
SQL> select owner from all_objects where object_name like '%CUSTOMER%';
OWNER
--------------------------------------------------------------------------------
MY_WORKSPACE
SQL> conn MY_WORKSPACE/*******
Connected.
SQL> desc customer
Name Null? Type
----------------------------------------- -------- ----------------------------
CUST_ID NUMBER
CUST_NAME VARCHAR2(40)
CUST_SEX VARCHAR2(10)
CUST_ADD VARCHAR2(100)
CUST_MOBILE NUMBER
CUST_JOIN_DATE DATE
CUST_STATUS VARCHAR2(10)
SQL> CREATE VIEW V_CUSTOMER
AS SELECT CUST_ID,CUST_NAME
FROM CUSTOMER; 2 3
View created.
SQL> select * from V_CUSTOMER;
CUST_ID CUST_NAME
---------- ----------------------------------------
2 ram
3 shayam
4 madhu
SQL> create user temp_user identified by welcome1;
User created.
SQL> grant create session to temp_user;
Grant succeeded.
SQL> grant select on MY_WORKSPACE.V_CUSTOMER to temp_user;
Grant succeeded.
SQL> conn temp_user/welcome1
Connected.
SQL> select * from MY_WORKSPACE.V_CUSTOMER;
CUST_ID CUST_NAME
---------- ----------------------------------------
2 ram
3 shayam
4 madhu
3 rows selected.
As sysdba revoke it :
SQL> revoke select on MY_WORKSPACE.V_CUSTOMER from temp_user;
Revoke succeeded.
SQL> conn temp_user/welcome1
Connected.
SQL> select * from MY_WORKSPACE.V_CUSTOMER;
select * from MY_WORKSPACE.V_CUSTOMER
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> select owner from all_objects where object_name like '%CUSTOMER%';
OWNER
--------------------------------------------------------------------------------
MY_WORKSPACE
SQL> conn MY_WORKSPACE/*******
Connected.
SQL> desc customer
Name Null? Type
----------------------------------------- -------- ----------------------------
CUST_ID NUMBER
CUST_NAME VARCHAR2(40)
CUST_SEX VARCHAR2(10)
CUST_ADD VARCHAR2(100)
CUST_MOBILE NUMBER
CUST_JOIN_DATE DATE
CUST_STATUS VARCHAR2(10)
SQL> CREATE VIEW V_CUSTOMER
AS SELECT CUST_ID,CUST_NAME
FROM CUSTOMER; 2 3
View created.
SQL> select * from V_CUSTOMER;
CUST_ID CUST_NAME
---------- ----------------------------------------
2 ram
3 shayam
4 madhu
SQL> create user temp_user identified by welcome1;
User created.
SQL> grant create session to temp_user;
Grant succeeded.
SQL> grant select on MY_WORKSPACE.V_CUSTOMER to temp_user;
Grant succeeded.
SQL> conn temp_user/welcome1
Connected.
SQL> select * from MY_WORKSPACE.V_CUSTOMER;
CUST_ID CUST_NAME
---------- ----------------------------------------
2 ram
3 shayam
4 madhu
3 rows selected.
As sysdba revoke it :
SQL> revoke select on MY_WORKSPACE.V_CUSTOMER from temp_user;
Revoke succeeded.
SQL> conn temp_user/welcome1
Connected.
SQL> select * from MY_WORKSPACE.V_CUSTOMER;
select * from MY_WORKSPACE.V_CUSTOMER
*
ERROR at line 1:
ORA-00942: table or view does not exist
Regards
No comments:
Post a Comment