![]() |
VOOZH | about |
In MySQL, managing user access is done with the GRANT statement to assign privileges and the REVOKE statement to remove them. After creating a user, these commands ensure they have only the permissions needed for their role.
Syntax:
GRANT privileges_names ON object TO user;In the above syntax:
Privileges: The privileges that can be granted to the users are listed below along with the description:
To grant the SELECT privilege on a table named "users" to a user named "Amit", use the following command:
GRANT SELECT ON Users TO 'Amit'@'localhost;'To grant multiple privileges, such as SELECT, INSERT, DELETE, and UPDATE to the user "Amit",
GRANT SELECT, INSERT, DELETE, UPDATE ON Users TO 'Amit'@'localhost';To grant all privileges on the "users" table to "Amit", use:
GRANT ALL ON Users TO 'Amit'@'localhost';To grant a specific privilege (e.g., SELECT) to all users on the "users" table, execute:
GRANT SELECT ON Users TO '*'@'localhost';In the above example the "*" symbol is used to grant select permission to all the users of the table "users".
While using functions and procedures, the Grant statement can be used to grant users the ability to execute the functions and procedures in MySQL.
GRANT EXECUTE ON FUNCTION function_name TO 'Amit'@'localhost';Example for granting EXECUTE privilege on a function named "CalculateSalary":
GRANT EXECUTE ON FUNCTION CalculateSalary TO 'Amit'@'localhost';Granting Execute Privilege: Execute privilege gives the ability to execute a function or procedure.Syntax:
GRANT EXECUTE ON [ PROCEDURE | FUNCTION ] object TO user; If there is a function named "CalculateSalary" and you want to grant EXECUTE access to the user named Amit, then the following GRANT statement should be executed.
GRANT EXECUTE ON FUNCTION Calculatesalary TO 'Amit'@'localhost';If there is a function named "CalculateSalary" and you want to grant EXECUTE access to all the users, then the following GRANT statement should be executed.
GRANT EXECUTE ON FUNCTION Calculatesalary TO '*'@'localhost'; If there is a procedure named "DBMSProcedure" and you want to grant EXECUTE access to the user named Amit, then the following GRANT statement should be executed.
GRANT EXECUTE ON PROCEDURE DBMSProcedure TO 'Amit'@'localhost'; If there is a procedure called "DBMSProcedure" and you want to grant EXECUTE access to all the users, then the following GRANT statement should be executed.
GRANT EXECUTE ON PROCEDURE DBMSProcedure TO '*'@'localhost'; To see the privileges granted to a user in a table, the SHOW GRANTS statement is used. To check the privileges granted to a user named "Amit" and host as "localhost", the following SHOW GRANTS statement will be executed:
SHOW GRANTS FOR 'Amit'@'localhost'; Output:
GRANTS FOR Amit@localhost
GRANT USAGE ON *.* TO `SUPER`@`localhost`
The Revoke statement is used to revoke some or all of the privileges which have been granted to a user in the past.
Syntax:
REVOKE privileges ON object FROM user;Parameters Used:
Below are the different ways of revoking privileges from a user in MySQL.
To revoke Select Privilege to a table named "users" where User Name is Amit, the following revoke statement should be executed.
REVOKE SELECT ON Users FROM 'Amit'@'localhost'; To revoke multiple Privileges to a user named "Amit" in a table "users", the following revoke statement should be executed.
REVOKE SELECT, INSERT, DELETE, UPDATE ON Users FROM 'Amit'@'localhost'; To revoke all the privileges to a user named "Amit" in a table "users", the following revoke statement should be executed.
REVOKE ALL ON Users FROM 'Amit'@'localhost'; While using functions and procedures, the revoke statement can be used to revoke the privileges from users which have been EXECUTE privileges in the past.
Syntax:
REVOKE EXECUTE ON [ PROCEDURE | FUNCTION ] object FROM User; If there is a function called "CalculateSalary" and you want to revoke EXECUTE access to the user named Amit, then the following revoke statement should be executed.
REVOKE EXECUTE ON FUNCTION Calculatesalary FROM 'Amit'@'localhost'; If there is a function called "CalculateSalary" and you want to revoke EXECUTE access to all the users, then the following revoke statement should be executed.
REVOKE EXECUTE ON FUNCTION Calculatesalary FROM '*'@'localhost'; If there is a procedure called "DBMSProcedure" and you want to revoke EXECUTE access to the user named Amit, then the following revoke statement should be executed.
REVOKE EXECUTE ON PROCEDURE DBMSProcedure FROM 'Amit'@'localhost'; If there is a procedure called "DBMSProcedure" and you want to revoke EXECUTE access to all the users, then the following revoke statement should be executed.
REVOKE EXECUTE ON PROCEDURE DBMSProcedure FROM '*'@'localhost';