DCL: GRANT, REVOKE

Commands used to control user permissions and access in a database.

Main Commands:

  • GRANT → Give permissions
  • REVOKE → Take back permissions

1. GRANT (Give Permission)

Syntax:

GRANT privilege1, privilege2 ON object_name TO user1, user2 [WITH GRANT OPTION];

Examples:

  • Give SELECT → GRANT SELECT ON Employees TO User1;
  • Multiple privileges → GRANT SELECT, INSERT ON Employees TO User2;
  • Allow user to further grant →
    GRANT SELECT ON Employees TO User3 WITH GRANT OPTION;

Key Points:

  • Privileges → SELECT, INSERT, UPDATE, DELETE, EXECUTE, etc.
  • WITH GRANT OPTION → lets the user pass on permissions.

2. REVOKE (Remove Permission)

Syntax:

REVOKE privilege1, privilege2 ON object_name FROM user1, user2;

Examples:

  • Remove SELECT → REVOKE SELECT ON Employees FROM User1;
  • Remove all privileges → REVOKE ALL PRIVILEGES ON Employees FROM User2;

Key Points:

  • Cancels permissions given earlier.
  • Does not delete data or structure.

Comparison Table of DCL Commands

CommandPurposeEffect
GRANTGive permissionsAllows users to perform operations
REVOKERemove permissionsStops users from performing operations

Common Privileges

PrivilegeDescription
SELECTRead data from table/view
INSERTAdd new rows
UPDATEModify existing rows
DELETERemove rows
EXECUTERun stored procedures/functions

🔶 SECTION A — BASIC DEFINITIONS

1. GRANT and REVOKE are part of which SQL category?

A. DDL
B. DML
C. DCL
D. TCL
Answer: C

2. DCL stands for:

A. Data Control Language
B. Data Console Language
C. Direct Command Language
D. Database Command Language
Answer: A

3. Purpose of GRANT is to:

A. Give permissions
B. Remove permissions
C. Modify table
D. Insert rows
Answer: A

4. Purpose of REVOKE is to:

A. Give permissions
B. Remove permissions
C. Alter table
D. Backup data
Answer: B

5. GRANT & REVOKE manage:

A. Data
B. Structure
C. Privileges
D. Keys
Answer: C


🔶 SECTION B — GRANT COMMAND

6. GRANT provides:

A. Data access
B. Security privileges
C. Backup permissions
D. Table copies
Answer: B

7. Syntax of GRANT includes:

A. GRANT privilege TO user;
B. GRANT TO user privilege;
C. ADD user privilege;
D. GIVE privilege user;
Answer: A

8. GRANT allows permissions to:

A. Users
B. Roles
C. Public
D. All of the above
Answer: D

9. Which of the following is NOT a privilege?

A. SELECT
B. INSERT
C. UPDATE
D. STRUCTURE
Answer: D

10. To allow user to select rows:

A. GRANT SELECT TO user;
B. GRANT READ TO user;
C. GIVE SELECT user;
D. ACCESS SELECT user;
Answer: A


🔶 SECTION C — REVOKE COMMAND

11. REVOKE removes:

A. User account
B. Data
C. Privileges
D. Tables
Answer: C

12. Syntax of REVOKE is:

A. REVOKE privilege FROM user;
B. REMOVE privilege user;
C. UNGRANT user privilege;
D. RESET user privilege;
Answer: A

13. REVOKE affects:

A. Only data
B. Only structure
C. Only permissions
D. Nothing
Answer: C

14. REVOKE SELECT FROM user removes:

A. User
B. Database
C. Permission to select
D. All data
Answer: C


🔶 SECTION D — TYPES OF PRIVILEGES

15. SELECT privilege allows:

A. Modify data
B. Only retrieve data
C. Delete table
D. Create database
Answer: B

16. INSERT privilege allows:

A. Create table
B. Add new rows
C. Modify existing rows
D. Delete rows
Answer: B

17. UPDATE privilege allows:

A. Add rows
B. Modify existing rows
C. Drop table
D. Remove privileges
Answer: B

18. DELETE privilege:

A. Deletes table
B. Deletes rows
C. Removes constraints
D. Updates NULL values
Answer: B

19. ALL PRIVILEGES means:

A. SELECT + INSERT only
B. SELECT + UPDATE only
C. All allowed privileges
D. Only administrative rights
Answer: C


🔶 SECTION E — WITH GRANT OPTION

20. WITH GRANT OPTION allows user to:

A. Use privilege only
B. Give privileges to others
C. Delete privileges
D. Change table structure
Answer: B

21. Granting privileges WITH GRANT OPTION creates:

A. Admin user
B. Chain of authority
C. Views
D. Index
Answer: B

22. REVOKE from user who granted privileges to others will:

A. Remove privileges from all users down the chain
B. Remove nothing
C. Remove table structure
D. Create new user
Answer: A


🔶 SECTION F

23. Branch manager is given access to view customer data:

A. GRANT SELECT
B. GRANT DELETE
C. GRANT DROP
D. GRANT UPDATE
Answer: A

24. Auditor given permission to view but not change data:

A. GRANT INSERT
B. GRANT SELECT
C. GRANT DELETE
D. GRANT UPDATE
Answer: B

25. Clerk given rights to add new customer account:

A. GRANT INSERT
B. GRANT SELECT
C. REVOKE INSERT
D. GRANT DROP
Answer: A

26. Remove permission from clerk to delete records:

A. GRANT DELETE
B. REVOKE DELETE
C. REMOVE DELETE
D. UNDELETE
Answer: B

27. Give full rights on ACCOUNT table:

A. GRANT ALL PRIVILEGES
B. SELECT ALL TABLE
C. CONTROL ACCOUNT
D. UPDATE FULL
Answer: A


🔶 SECTION G — OBJECT VS SYSTEM PRIVILEGES

28. Privileges on tables are:

A. System privileges
B. Object privileges
C. Both
D. None
Answer: B

29. Privileges like CREATE USER are:

A. Table privileges
B. Role privileges
C. System privileges
D. Session privileges
Answer: C

30. GRANT SELECT ON table means:

A. User can modify table
B. User can only read data
C. User can delete data
D. User can drop table
Answer: B


🔶 SECTION H — TRUE / FALSE

31. GRANT allows passing privileges to others.

True

32. REVOKE removes privileges from user.

True

33. GRANT SELECT allows modifying data.

False

34. WITH GRANT OPTION allows user to drop table.

False

35. REVOKE cannot remove privileges granted indirectly.

False


🔶 SECTION I — ADVANCED

36. PUBLIC keyword in GRANT means:

A. All users on database
B. Only admin
C. Only table owner
D. Only developers
Answer: A

37. REVOKE privileges from PUBLIC means:

A. Remove from all users
B. Remove from admin only
C. Remove from one user
D. Does nothing
Answer: A

38. Who can GRANT privileges?

A. DBA
B. Table owner
C. User with GRANT OPTION
D. All of the above
Answer: D

39. GRANT UPDATE(col1) means user can update:

A. All columns
B. Only col1
C. Only PK
D. No columns
Answer: B

40. REVOKE UPDATE(col1) means:

A. Remove update only on col1
B. Remove all update privileges
C. Remove table
D. Remove database
Answer: A


🔶 SECTION J — COMMAND PATTERNS

41. GRANT ALL PRIVILEGES ON table TO user;

A. Gives partial rights
B. Gives all rights
C. Deletes user
D. Creates user
Answer: B

42. REVOKE ALL PRIVILEGES ON table FROM user;

A. Removes all table permissions
B. Drops table
C. Deletes database
D. Removes user password
Answer: A

43. GRANT SELECT, INSERT ON table TO user;

A. User can read & write
B. User can delete
C. User can drop table
D. User can grant others
Answer: A

44. GRANT SELECT ON table TO A WITH GRANT OPTION:

This means:
A. A can SELECT only
B. A can SELECT & give SELECT permission to others
C. A can UPDATE
D. A becomes DBA
Answer: B

45. REVOKE SELECT FROM A removes:

A. Only SELECT from A
B. SELECT from A and all he granted down the chain
C. DELETE from A
D. Table structure
Answer: B


🔶 SECTION K

46. If A granted SELECT to B WITH GRANT OPTION and B grants to C, then A revokes SELECT from B. What happens?

A. C also loses access
B. C keeps access
C. A loses access
D. Nothing happens
Answer: A

47. Which of the following is a DCL operation?

A. Create Table
B. Insert Rows
C. Grant Permissions
D. Backup Database
Answer: C

48. Privileges that control entire database are:

A. Object privileges
B. System privileges
C. Column privileges
D. Session privileges
Answer: B

49. GRANT EXECUTE ON procedure allows:

A. Running a stored procedure
B. Deleting a stored procedure
C. Dropping table
D. Creating view
Answer: A

50. REVOKE EXECUTE ON procedure FROM user removes:

A. Procedure
B. Permission to execute procedure
C. All privileges
D. Column updates
Answer: B


🔶 SECTION L

51. DCL commands affect:

A. Data
B. Database structure
C. User permissions & security
D. Logs
Answer: C

52. Which privilege must be granted to INSERT data?

A. DML privilege
B. DDL privilege
C. TCL privilege
D. View privilege
Answer: A

53. To prevent unauthorized access:

A. GRANT
B. REVOKE
C. DELETE
D. UPDATE
Answer: B

54. The absence of GRANT implies:

A. Access automatically allowed
B. Access automatically denied
C. Only SELECT possible
D. All rights allowed
Answer: B

55. GRANT USAGE ON table means:

A. Read-only access
B. No modification
C. Basic access
D. All of the above
Answer: C

56. Which user has all privileges by default?

A. PUBLIC
B. DBA
C. Clerk
D. Auditor
Answer: B

57. Which privilege allows user to drop tables?

A. DELETE
B. DROP
C. ALL PRIVILEGES
D. SYSTEM privilege
Answer: D

58. REVOKE does not affect:

A. GRANTED privileges
B. Table structure
C. Column structure
D. Constraints
Answer: A

59. Revoked privileges:

A. Can be regained by GRANT
B. Lost forever
C. Backup removes them
D. Stored in UNDO logs
Answer: A

60. GRANT CREATE SESSION allows user to:

A. Log in to database
B. Create tables
C. Create views
D. Create indexes
Answer: A