Thursday, October 31, 2019

Oracle grant and revoke from user - GRANT and REVOKE

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


Regards

No comments:

Post a Comment