MySQL controls access through user accounts and privileges.
Key Commands
CREATE USER� create accountsGRANT� give privilegesREVOKE� remove privilegesSHOW GRANTS� view privileges
MySQL controls access through user accounts and privileges.
CREATE USER � create accountsGRANT � give privilegesREVOKE � remove privilegesSHOW GRANTS � view privilegesCREATE USER "app_user"@"localhost" IDENTIFIED BY "password123"; GRANT SELECT, INSERT, UPDATE ON mydb.* TO "app_user"@"localhost"; GRANT ALL PRIVILEGES ON mydb.* TO "admin"@"localhost"; REVOKE DELETE ON mydb.* FROM "app_user"@"localhost"; SHOW GRANTS FOR "app_user"@"localhost"; FLUSH PRIVILEGES;
-- Create a user CREATE USER "app_user"@"localhost" IDENTIFIED BY "StrongPass123!"; -- Grant privileges GRANT SELECT, INSERT, UPDATE ON shop.* TO "app_user"@"localhost"; -- Grant all on one database GRANT ALL PRIVILEGES ON shop.* TO "developer"@"localhost"; -- Revoke privileges REVOKE DELETE ON shop.* FROM "app_user"@"localhost"; -- Show privileges SHOW GRANTS FOR "app_user"@"localhost"; -- Drop user DROP USER "old_user"@"localhost"; -- Role (MySQL 8+) CREATE ROLE "read_only"; GRANT SELECT ON shop.* TO "read_only"; GRANT "read_only" TO "app_user"@"localhost";
Create a user with only SELECT on the products table.
CREATE USER "viewer"@"localhost" IDENTIFIED BY "view123";
GRANT SELECT ON mydb.products TO "viewer"@"localhost";
Which command gives privileges?
GRANT assigns privileges to users.
Give users only the minimum privileges they need. A web app user should not have DROP or ALTER permissions.