Bird
Raised Fist0
MySQLquery~5 mins

Creating users in MySQL - Quick Revision & Summary

Choose your learning style10 modes available
Recall & Review
beginner
What is the basic SQL command to create a new user in MySQL?
The basic command is CREATE USER 'username'@'host' IDENTIFIED BY 'password'; where you specify the username, host, and password.
Click to reveal answer
beginner
Why do you need to specify the host when creating a MySQL user?
The host defines where the user can connect from. For example, 'localhost' means the user can only connect from the local machine.
Click to reveal answer
intermediate
How do you grant all privileges on a database to a user after creating them?
Use GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host'; to give full access to that database.
Click to reveal answer
intermediate
What command do you use to apply changes after creating or modifying users in MySQL?
Run FLUSH PRIVILEGES; to reload the grant tables and apply changes immediately.
Click to reveal answer
beginner
Can you create a user without a password in MySQL? What is the risk?
Yes, but it is not recommended because it allows anyone to connect without authentication, which is a security risk.
Click to reveal answer
Which command creates a new MySQL user with password 'mypassword' for localhost?
ACREATE USER 'user1'@'localhost' IDENTIFIED BY 'mypassword';
BADD USER 'user1' IDENTIFIED BY 'mypassword';
CNEW USER 'user1'@'localhost' SET PASSWORD 'mypassword';
DCREATE LOGIN 'user1' WITH PASSWORD 'mypassword';
What does the host part in 'username'@'host' specify?
AThe database the user can access
BThe user's role
CThe user's password
DThe IP or machine from which the user can connect
After creating a user, what command applies the changes immediately?
AAPPLY PRIVILEGES;
BUPDATE USERS;
CFLUSH PRIVILEGES;
DRELOAD USERS;
Which command grants all privileges on the database 'shop' to user 'alice'?
AGRANT ALL PRIVILEGES ON shop TO 'alice';
BGRANT ALL PRIVILEGES ON shop.* TO 'alice'@'localhost';
CGRANT ALL ON shop TO 'alice';
DGRANT ALL PRIVILEGES ON shop.* TO 'alice'@'%';
Is it safe to create a MySQL user without a password?
ANo, it is a security risk
BYes, it is safe and recommended
COnly if the user connects from localhost
DOnly if the user has limited privileges
Explain the steps to create a new MySQL user and give them full access to a specific database.
Think about creating the user, granting rights, then applying changes.
You got /3 concepts.
    Why is specifying the host important when creating a MySQL user?
    Consider how MySQL controls user connections.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the CREATE USER statement in MySQL?
      easy
      A. To add a new user who can access the database
      B. To delete an existing user
      C. To change the password of a user
      D. To list all users in the database

      Solution

      1. Step 1: Understand the purpose of CREATE USER

        The CREATE USER command is used to add a new user account to the MySQL server.
      2. Step 2: Differentiate from other user commands

        Deleting users uses DROP USER, changing passwords uses ALTER USER, and listing users requires querying system tables.
      3. Final Answer:

        To add a new user who can access the database -> Option A
      4. Quick Check:

        CREATE USER adds users [OK]
      Hint: Remember: CREATE USER adds, DROP USER removes [OK]
      Common Mistakes:
      • Confusing CREATE USER with DROP USER
      • Thinking CREATE USER changes passwords
      • Assuming CREATE USER lists users
      2. Which of the following is the correct syntax to create a user named 'alice' who can connect from any host with password 'mypassword'?
      easy
      A. CREATE USER 'alice'@'localhost' PASSWORD 'mypassword';
      B. CREATE USER alice IDENTIFIED BY 'mypassword';
      C. CREATE USER 'alice'@'%' IDENTIFIED BY 'mypassword';
      D. CREATE USER 'alice' IDENTIFIED WITH 'mypassword';

      Solution

      1. Step 1: Check the correct syntax for user creation

        The correct syntax includes the username in quotes, the host in quotes after @, and the password set with IDENTIFIED BY.
      2. Step 2: Validate each option

        CREATE USER 'alice'@'%' IDENTIFIED BY 'mypassword'; uses 'alice'@'%' which means any host, and IDENTIFIED BY 'mypassword' is correct. CREATE USER alice IDENTIFIED BY 'mypassword'; misses the host part. CREATE USER 'alice' IDENTIFIED WITH 'mypassword'; uses IDENTIFIED WITH which is incorrect here. CREATE USER 'alice'@'localhost' PASSWORD 'mypassword'; uses PASSWORD keyword incorrectly.
      3. Final Answer:

        CREATE USER 'alice'@'%' IDENTIFIED BY 'mypassword'; -> Option C
      4. Quick Check:

        Correct syntax includes user@host and IDENTIFIED BY [OK]
      Hint: User must have 'user'@'host' and IDENTIFIED BY password [OK]
      Common Mistakes:
      • Omitting the host part after username
      • Using PASSWORD instead of IDENTIFIED BY
      • Using IDENTIFIED WITH incorrectly
      3. What will happen if you run this command?
      CREATE USER 'bob'@'localhost' IDENTIFIED BY 'secret';
      medium
      A. A new user 'bob' is created who can connect only from localhost
      B. An error occurs because password is missing
      C. User 'bob' is created but can connect from any host
      D. The command deletes user 'bob' if exists

      Solution

      1. Step 1: Analyze the command

        The command creates a user named 'bob' who can connect only from 'localhost' with password 'secret'.
      2. Step 2: Understand host specification

        The '@localhost' means the user can connect only from the local machine, not from other hosts.
      3. Final Answer:

        A new user 'bob' is created who can connect only from localhost -> Option A
      4. Quick Check:

        User@localhost limits connection to local machine [OK]
      Hint: Host part limits where user can connect from [OK]
      Common Mistakes:
      • Assuming user can connect from any host without '%' wildcard
      • Thinking password is missing causes error
      • Confusing CREATE USER with DROP USER
      4. Identify the error in this command:
      CREATE USER 'carol' IDENTIFIED BY 'pass123';
      medium
      A. Usernames cannot be in quotes
      B. Missing host part after username
      C. Password must be numeric only
      D. IDENTIFIED BY is not valid syntax

      Solution

      1. Step 1: Check syntax requirements for CREATE USER

        MySQL requires specifying the host part after the username, like 'user'@'host'.
      2. Step 2: Identify the missing part

        The command misses '@host' after 'carol', which causes a syntax error.
      3. Final Answer:

        Missing host part after username -> Option B
      4. Quick Check:

        User must be 'name'@'host' [OK]
      Hint: Always include '@host' after username [OK]
      Common Mistakes:
      • Omitting the host part
      • Thinking quotes are not allowed for usernames
      • Believing password must be numeric
      5. You want to create a user 'dave' who can connect only from IP 192.168.1.100 with password 'safePass!'. Which command correctly achieves this and ensures the user has permission to select data from the 'employees' database?
      hard
      A. CREATE USER 'dave'@'192.168.1.100' IDENTIFIED BY 'safePass!'; GRANT SELECT ON employees TO 'dave'@'localhost';
      B. CREATE USER 'dave' IDENTIFIED BY 'safePass!'; GRANT SELECT ON employees.* TO 'dave';
      C. CREATE USER 'dave'@'%' IDENTIFIED BY 'safePass!'; GRANT ALL PRIVILEGES ON employees TO 'dave'@'%';
      D. CREATE USER 'dave'@'192.168.1.100' IDENTIFIED BY 'safePass!'; GRANT SELECT ON employees.* TO 'dave'@'192.168.1.100';

      Solution

      1. Step 1: Create user with correct host and password

        The user 'dave' must be created with host '192.168.1.100' and password 'safePass!'. CREATE USER 'dave'@'192.168.1.100' IDENTIFIED BY 'safePass!';
      2. Step 2: Grant correct permissions to the right user and host

        CREATE USER 'dave'@'192.168.1.100' IDENTIFIED BY 'safePass!'; GRANT SELECT ON employees.* TO 'dave'@'192.168.1.100'; grants SELECT on employees.* to 'dave'@'192.168.1.100', matching the user host. CREATE USER 'dave'@'192.168.1.100' IDENTIFIED BY 'safePass!'; GRANT SELECT ON employees TO 'dave'@'localhost'; grants to 'dave'@'localhost', which is incorrect. Options B and C have wrong host or privileges.
      3. Final Answer:

        CREATE USER 'dave'@'192.168.1.100' IDENTIFIED BY 'safePass!'; GRANT SELECT ON employees.* TO 'dave'@'192.168.1.100'; -> Option D
      4. Quick Check:

        User host and grant host must match [OK]
      Hint: Match user host in CREATE USER and GRANT [OK]
      Common Mistakes:
      • Granting permissions to wrong host
      • Using '%' wildcard when specific IP is required
      • Granting wrong privileges or missing database.*
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard