Skip to content
Home Tutorials Roadmaps Courses
Log in Join free
Tutorials MySQL User Privileges
MySQL Intermediate FREE

User Privileges

Lesson 2 of 16 Intermediate Interactive

MySQL controls access through user accounts and privileges.

Key Commands

  • CREATE USER � create accounts
  • GRANT � give privileges
  • REVOKE � remove privileges
  • SHOW GRANTS � view privileges

Syntax

MYSQL
CREATE 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;
User Privileges
SQL
-- 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";

Practice

1
Exercise

Create a user with only SELECT on the products table.

Answer
CREATE USER "viewer"@"localhost" IDENTIFIED BY "view123";
GRANT SELECT ON mydb.products TO "viewer"@"localhost";

Quick Quiz

1

Which command gives privileges?

GRANT assigns privileges to users.

Interview Questions

Give users only the minimum privileges they need. A web app user should not have DROP or ALTER permissions.