📖 Scenario: You are managing a user database for a website. To keep user accounts safe, you want to create a table that stores password policies. These policies will help enforce rules like minimum length and whether special characters are required.
🎯 Goal: Create a table called password_policies with columns for policy ID, minimum length, and a flag for requiring special characters. Then insert a sample policy and finally query the table to see the policies.
📋 What You'll Learn
Create a table named password_policies with columns policy_id (integer, primary key), min_length (integer), and require_special_char (boolean).
Insert one row with policy_id 1, min_length 8, and require_special_char true.
Write a query to select all columns from password_policies.
💡 Why This Matters
🌍 Real World
Password policies are essential for securing user accounts in websites and applications. Managing these policies in a database helps enforce consistent rules.
💼 Career
Database administrators and backend developers often create and manage tables that store security policies, including password requirements.
Progress0 / 4 steps
1
Create the password_policies table
Write a SQL statement to create a table called password_policies with three columns: policy_id as an integer primary key, min_length as an integer, and require_special_char as a boolean.
MySQL
Hint
Use CREATE TABLE with the column names and types exactly as specified.
2
Insert a sample password policy
Write a SQL INSERT statement to add one row into password_policies with policy_id 1, min_length 8, and require_special_char true.
MySQL
Hint
Use INSERT INTO with the exact column names and values.
3
Query all password policies
Write a SQL SELECT statement to get all columns from the password_policies table.
MySQL
Hint
Use SELECT * FROM password_policies; to get all rows and columns.
4
Add a new password policy
Write a SQL INSERT statement to add a second password policy with policy_id 2, min_length 12, and require_special_char false.
MySQL
Hint
Use INSERT INTO with the exact column names and values for the second policy.
Practice
(1/5)
1. What is the purpose of MySQL's validate_password_policy variable?
easy
A. To set rules for creating strong passwords
B. To control user access privileges
C. To define database storage engines
D. To manage query cache size
Solution
Step 1: Understand the variable name
The variable validate_password_policy relates to password validation rules.
Step 2: Identify its function
It sets rules to ensure passwords are strong and secure.
Final Answer:
To set rules for creating strong passwords -> Option A
Quick Check:
Password policy = Set rules for strong passwords [OK]
Hint: Policy variables control password strength rules [OK]
Common Mistakes:
Confusing password policy with user privileges
Thinking it manages database storage
Assuming it controls query cache
2. Which of the following is the correct syntax to check the current password policy level in MySQL?
easy
A. SHOW PASSWORD POLICY;
B. SELECT * FROM validate_password_policy;
C. SHOW VARIABLES LIKE 'validate_password_policy';
D. GET VARIABLES 'validate_password_policy';
Solution
Step 1: Recall how to view system variables
MySQL uses SHOW VARIABLES LIKE 'variable_name'; to display variable values.
Step 2: Match the variable name
The variable for password policy is validate_password_policy, so the correct syntax is SHOW VARIABLES LIKE 'validate_password_policy';
Final Answer:
SHOW VARIABLES LIKE 'validate_password_policy'; -> Option C
Quick Check:
SHOW VARIABLES LIKE 'validate_password_policy' [OK]
Hint: Use SHOW VARIABLES LIKE for system settings [OK]
Common Mistakes:
Using SELECT on a variable name
Trying non-existent commands like SHOW PASSWORD POLICY
Using GET VARIABLES which is invalid syntax
3. Given the following commands executed in MySQL:
SET GLOBAL validate_password_length = 10; SHOW VARIABLES LIKE 'validate_password_length';
What will be the output of the SHOW VARIABLES command?
medium
A. Variable_name: validate_password_length, Value: 10
B. Variable_name: validate_password_length, Value: 8
C. Syntax error
D. Variable_name: validate_password_policy, Value: 10
Solution
Step 1: Understand the SET GLOBAL command
The command sets the global password length requirement to 10 characters.
Step 2: SHOW VARIABLES output
The SHOW VARIABLES LIKE 'validate_password_length'; will display the current value, which is now 10.
Final Answer:
Variable_name: validate_password_length, Value: 10 -> Option A
Quick Check:
SET GLOBAL changes variable, SHOW displays updated value [OK]
Hint: SET GLOBAL changes variable, SHOW displays current value [OK]
Common Mistakes:
Expecting default value instead of updated
Confusing variable names
Assuming syntax error from SET GLOBAL
4. You tried to set the password policy level with this command:
SET GLOBAL validate_password_policy = 'STRONG';
But MySQL returned an error. What is the likely cause?
medium
A. The command requires quotes around the variable name
B. The variable name is incorrect
C. You must use SET SESSION instead of SET GLOBAL
D. The value should be an integer, not a string
Solution
Step 1: Check variable type for validate_password_policy
This variable expects an integer value (0,1,2) representing policy levels, not strings.
Step 2: Understand error cause
Using a string like 'STRONG' causes a type mismatch error.
Final Answer:
The value should be an integer, not a string -> Option D
Quick Check:
Policy level = integer, not string [OK]
Hint: Policy levels use numbers, not words [OK]
Common Mistakes:
Using string values instead of integers
Mistyping variable name
Confusing SET GLOBAL with SET SESSION
5. You want to enforce a password policy that requires passwords to be at least 12 characters long, include mixed case letters, numbers, and special characters. Which combination of MySQL variables should you set to achieve this?
hard
A. SET GLOBAL validate_password_length = 10; SET GLOBAL validate_password_policy = 0;
B. SET GLOBAL validate_password_length = 12; SET GLOBAL validate_password_policy = 2;
C. SET GLOBAL validate_password_length = 12; SET GLOBAL validate_password_policy = 1;
D. SET GLOBAL validate_password_length = 8; SET GLOBAL validate_password_policy = 0;
Solution
Step 1: Understand password length requirement
You want at least 12 characters, so validate_password_length must be set to 12.
Step 2: Understand policy levels
Policy level 2 (STRONG) requires mixed case, numbers, and special characters.
Step 3: Match variables to requirements
Setting validate_password_policy = 2 and length to 12 enforces all requirements.
Final Answer:
SET GLOBAL validate_password_length = 12; SET GLOBAL validate_password_policy = 2; -> Option B