Cyber Security  ·  Level 5
Secure Databases
Chapter 3: Create a database
📚 1 Topics
What you will be able to do

By the end of this chapter, you will be able to:

  • Create a database using your chosen DBMS that matches the approved design specifications.
  • Define tables, fields, and relationships accurately based on the database schema.
  • Apply primary keys, foreign keys, and constraints to keep data accurate and reliable.
  • Set up security controls like user accounts, roles, and privileges to protect your database.
  • Implement stored procedures, triggers, and views correctly to enhance database functionality and security.
  • Insert sample data to test that tables, relationships, and security rules work as expected.
  • Document the entire database creation process clearly, following your organization's standards and security policies.

Mastering these skills means you can build secure, reliable databases that keep data safe and support real-world business needs.

Creating and managing secure databases is fundamental for cyber security professionals in Kenya, especially given the growing reliance on digital data across sectors such as banking, healthcare, and government services. This chapter focuses on practical skills for creating and querying databases using MySQL, a widely adopted relational database management system. Mastery of SQL (Structured Query Language) is essential for securely accessing and manipulating data, enabling professionals to safeguard sensitive information effectively. Understanding SQL categories, designing statements, and executing queries lays the foundation for robust database security and operational efficiency.

3.1 Querying a database using MySQL

Querying a database is the process of requesting specific data from a database system using a query language. In Kenya's cyber security environment, correctly querying databases supports the detection of anomalies, audit trails, and enforcement of access controls. MySQL is a popular choice for relational databases due to its open-source nature and extensive support for SQL standards, making it a key tool for cyber security analysts and database administrators.

3.1.1 Identify categories of SQL statements

SQL statements are commands used to interact with databases. They fall into distinct categories based on their functions, each vital for database management and security.

Data Definition Language (DDL)

DDL statements define or modify database structures such as tables and indexes. Key commands include CREATE, ALTER, and DROP. For example, in a county government office managing citizen records, DDL commands create tables to store personal details securely and alter them when additional fields are required, such as biometric data.

Data Manipulation Language (DML)

DML statements manipulate data within existing tables. These include SELECT, INSERT, UPDATE, and DELETE. In a hospital setting, DML commands retrieve patient records, insert new treatment data, update medication information, or delete outdated entries while ensuring audit compliance.

Data Control Language (DCL)

DCL manages permissions and controls access to data. Commands like GRANT and REVOKE assign or remove user privileges. For instance, a financial institution uses DCL to restrict sensitive data access only to authorized staff, preventing insider threats.

Transaction Control Language (TCL)

TCL handles transactions ensuring data integrity. Commands such as COMMIT, ROLLBACK, and SAVEPOINT manage changes as atomic units. In retail companies, TCL ensures that stock updates and sales records are consistent even if a system failure occurs mid-transaction.

Data Query Language (DQL)

Although often grouped under DML, DQL specifically refers to SELECT statements that query data. Cyber security professionals use DQL extensively to monitor logs and extract relevant information for threat analysis.

3.1.2 Design SQL statements

Designing SQL statements involves constructing commands that accurately and securely perform database operations. Good design prevents SQL injection attacks, optimizes performance, and ensures data integrity.

Principles of Secure SQL Design

  1. Input Validation: Always validate user inputs to prevent malicious commands from being executed. For example, a SACCO system validates member IDs before querying account balances.
  2. Use of Prepared Statements: Prepared statements separate SQL code from data inputs, reducing injection risks. County health systems implementing electronic medical records use this to protect patient data.
  3. Least Privilege Principle: Design statements to access only necessary data, limiting exposure. A university database restricts queries to student advisors for their respective students only.
  4. Clear Naming Conventions: Use descriptive and consistent names for tables and columns to improve readability and maintenance. For example, naming a table employee_records instead of ambiguous terms aids clarity.
  5. Avoiding Wildcards in Sensitive Queries: Overuse of wildcards can retrieve excessive data. For compliance audits at insurance firms, precise queries reduce data exposure.

Structuring SQL Statements

SQL statements should follow a logical structure to enhance readability and debugging. For example, a SELECT statement typically orders clauses as SELECT, FROM, WHERE, GROUP BY, HAVING, and ORDER BY. Proper indentation and capitalization conventions help maintain standards in collaborative environments like government IT departments.

3.1.3 Design SQL Queries

SQL queries are specific commands designed to retrieve or manipulate data. Designing effective queries requires understanding the data model and intended results.

Types of SQL Queries

  1. Simple Queries: Retrieve data from one table using straightforward conditions. For instance, extracting all active customer accounts in a bank.
  2. Join Queries: Combine data from multiple tables based on related columns. A hotel management system might join guest bookings with payment records to generate invoices.
  3. Aggregate Queries: Use functions like COUNT, SUM, AVG to summarize data. A county revenue office might use these to calculate total taxes collected per region.
  4. Nested Queries (Subqueries): Queries within queries, used to filter data based on dynamic conditions. For example, identifying employees with salaries above the average in a retail firm.
  5. Conditional Queries: Use CASE statements to apply conditional logic within queries, such as categorizing loan applicants by risk level in a cooperative bank.

Query Optimization

Efficient queries reduce server load and improve response times, crucial for real-time cyber security monitoring. Indexing relevant columns and avoiding unnecessary columns in SELECT statements are common optimization techniques. For example, the Kenya Revenue Authority (KRA) optimizes tax data queries to quickly detect anomalies.

3.1.4 Use SQL statements to query a database

Executing SQL statements involves interacting with the database engine to retrieve or modify data. Cyber security professionals must ensure queries are accurate, efficient, and secure.

Steps to Query a Database Using MySQL

  1. Connect to the Database: Establish a secure connection using credentials with minimum required privileges. For example, a school’s IT department uses encrypted connections to protect student data.
  2. Select the Database: Specify the target database to avoid ambiguity in multi-database environments.
  3. Write the SQL Query: Construct the query following design principles to retrieve or manipulate data.
  4. Execute the Query: Use MySQL command-line tools, GUI clients like MySQL Workbench, or integrated security platforms.
  5. Fetch and Process Results: Retrieve query results and process them for reporting, analysis, or further action.
  6. Close the Connection: Properly close the connection to free resources and maintain security.

Practical Query Examples

  • Retrieving user activity logs for anomaly detection in a county government system:

sql SELECT user_id, login_time, ip_address FROM activity_logs WHERE login_time > '2024-01-01 00:00:00' ORDER BY login_time DESC;

  • Updating password hashes after a security upgrade in a SACCO database:

sql UPDATE members SET password_hash = SHA2(CONCAT(salt, password), 256) WHERE last_password_update < '2023-01-01';

Security Considerations While Querying

  • Always use parameterized queries or prepared statements to prevent SQL injection.
  • Avoid displaying raw error messages to end-users that might reveal database structure.
  • Implement logging of query execution for audit trails, especially in sensitive environments like national hospitals.

Practice Questions

  1. Explain the different categories of SQL statements and their relevance in securing databases. (10 marks)
  2. Describe five key principles for designing secure SQL statements in a financial institution. (10 marks)
  3. Differentiate between simple queries and join queries, providing examples of each from a retail business context. (10 marks)
  4. Outline the steps required to execute a SQL query safely using MySQL in a county government office. (10 marks)

Chapter Summary

This chapter focused on querying a database using MySQL, beginning with an understanding of the different categories of SQL statements and their distinct roles in database management. It then explored the design of SQL statements, emphasizing the importance of constructing accurate and efficient commands to interact with data. The chapter progressed to the design of SQL queries, highlighting how to retrieve specific information by structuring queries to meet particular data requirements. Finally, practical use of SQL statements was covered, demonstrating how to execute queries to extract and manipulate data within a database environment. Mastery of these skills enables effective communication with databases, ensuring data can be accessed and managed securely and efficiently.

Self-Assessment

🔒 PDFDownload this self-assessment, with answers

A. Written Assessment

  1. What are the main categories of SQL statements used in querying databases? (3 marks)
  2. Explain the difference between a DDL and a DML SQL statement. (3 marks)
  3. Write a SQL query to retrieve all records from a table named Employees where the department is 'Finance'. (4 marks)
  4. Identify the SQL statement used to modify existing data in a database. (2 marks)
  5. Describe the purpose of the WHERE clause in SQL queries. (3 marks)
  6. What SQL command would you use to remove a table named TempData from the database? (2 marks)
  7. How does the JOIN operation work in SQL? Provide an example scenario relevant to a Kenyan bank. (4 marks)
  8. Construct a SQL query that counts the number of customers in a Clients table who live in Nairobi. (4 marks)
  9. Differentiate between INNER JOIN and LEFT JOIN with respect to query results. (4 marks)
  10. Explain why parameterized queries are important in securing databases against SQL injection attacks. (4 marks)
Show Answers
  1. The main categories of SQL statements are Data Definition Language (DDL), Data Manipulation Language (DML), Data Control Language (DCL), and Transaction Control Language (TCL). DDL manages schema and structure; DML handles data operations; DCL controls access; TCL manages transactions.
  2. DDL (e.g., CREATE, ALTER) defines or modifies database structures, while DML (e.g., INSERT, UPDATE) manipulates data within those structures.
  3. SELECT * FROM Employees WHERE department = 'Finance'; retrieves all employees in the Finance department.
  4. The UPDATE statement modifies existing data in a database.
  5. The WHERE clause filters records to return only those that meet specified conditions, improving query precision.
  6. DROP TABLE TempData; removes the entire table and its data from the database.
  7. The JOIN operation combines rows from two or more tables based on related columns. For example, a Kenyan bank can join Accounts and Customers tables on CustomerID to retrieve customer account details.
  8. SELECT COUNT(*) FROM Clients WHERE city = 'Nairobi'; counts clients residing in Nairobi.
  9. INNER JOIN returns only matching rows from both tables; LEFT JOIN returns all rows from the left table and matching rows from the right, filling NULLs where no match exists.
  10. Parameterized queries separate code from data inputs, preventing attackers from injecting malicious SQL, thus protecting databases from SQL injection vulnerabilities.

B. Oral Assessment

  1. Discuss how different categories of SQL statements contribute to effective database security management in a cybersecurity context.
  2. Explain how designing efficient SQL queries can impact the performance and security of a database system used by a large Kenyan financial institution.
Answer Guide

Question 1 key points:
- DCL statements like GRANT and REVOKE enforce user permissions, limiting unauthorized access.
- DDL controls structural changes, preventing accidental or malicious schema alterations.
- TCL ensures transactional integrity, avoiding partial updates that can compromise data consistency.
- Understanding these categories helps cybersecurity professionals apply precise controls to safeguard data.

Question 2 key points:
- Efficient queries reduce processing time, lowering exposure to denial-of-service risks.
- Well-designed queries minimize excessive data retrieval, reducing attack surface.
- Proper indexing and query optimization prevent system bottlenecks, enhancing resilience.
- Secure query design includes input validation and parameterization to prevent injection attacks.

C. Case Study

The Central Bank of Kenya is upgrading its customer transaction database to improve query efficiency and security.

Tasks:
a) Identify and categorize the SQL statements that the database administrators should use to create and secure the new database schema. (5 marks)
b) Design a SQL query to retrieve all transactions above Ksh 100,000 for customers based in Mombasa. (5 marks)
c) Explain how using parameterized queries in this context can prevent SQL injection attacks. (5 marks)

Suggested Approach

a) The administrators should use DDL statements such as CREATE TABLE and ALTER TABLE to define and modify schema. DCL statements like GRANT and REVOKE will control user permissions. TCL commands such as COMMIT and ROLLBACK will manage transaction integrity. Recognizing these categories ensures proper database structure and access control.

b) A suitable query would be:
SELECT * FROM Transactions WHERE amount > 100000 AND customer_city = 'Mombasa';
This query filters transactions exceeding Ksh 100,000 for customers located in Mombasa, enabling focused data retrieval.

c) Parameterized queries separate SQL code from user input, preventing attackers from injecting malicious commands. In the banking context, this protects sensitive transaction data by ensuring inputs such as customer identifiers or amounts do not alter the query logic, thereby safeguarding against SQL injection exploits.

Chapter Examination Questions

🔒 PDFDownload these examination questions, with model answers

SECTION A (40 Marks) - Answer ALL Questions

  1. Explain the four main categories of SQL statements and provide an example of each category as used in managing a database at a Kenyan SACCO. (4 marks)
  2. Differentiate between the SQL commands SELECT and UPDATE in terms of their purpose and usage within a database environment. (4 marks)
  3. Write an SQL statement to create a table named "Customers" with fields for CustomerID, Name, Email, and PhoneNumber. (4 marks)
  4. Describe the role of the WHERE clause in SQL queries and illustrate how it can be used to filter customer records from a bank’s database. (4 marks)
  5. Identify and explain three types of SQL JOINs and discuss their significance when querying relational databases. (4 marks)
  6. Demonstrate how to use the ORDER BY clause in a query to sort employee records by their date of joining in descending order. (4 marks)
  7. Explain the importance of parameterized queries in preventing SQL injection attacks in Kenyan government databases. (4 marks)
  8. Write an SQL query to retrieve all records from a "Transactions" table where the transaction amount exceeds Ksh 50,000. (4 marks)
  9. Discuss the difference between the SQL statements DELETE and TRUNCATE, highlighting their impact on data security in a hospital database. (4 marks)
  10. Explain how aggregate functions like COUNT and SUM can be used in SQL queries to generate reports for a retail business. (4 marks)
Section A - Answers
  1. The four main categories of SQL statements are:
    • Data Definition Language (DDL): Used to define or modify database structures. Example: CREATE TABLE
    • Data Manipulation Language (DML): Used to manipulate data within tables. Example: INSERT INTO
    • Data Control Language (DCL): Used to control access to data. Example: GRANT
    • Transaction Control Language (TCL): Used to manage transactions. Example: COMMIT
  2. SELECT retrieves data from the database without modifying it, while UPDATE modifies existing data in one or more records. SELECT is used to view information, UPDATE to change it.
  3. CREATE TABLE Customers (CustomerID INT PRIMARY KEY, Name VARCHAR(100), Email VARCHAR(100), PhoneNumber VARCHAR(15));
  4. The WHERE clause filters records that meet specified conditions. For example, to get customers from Nairobi branch: SELECT * FROM Customers WHERE Branch='Nairobi';
  5. INNER JOIN returns records with matching values in both tables; LEFT JOIN returns all records from the left table plus matches from right; RIGHT JOIN returns all records from the right table plus matches from left. These help combine related data across tables.
  6. SELECT * FROM Employees ORDER BY DateOfJoining DESC; sorts employees with the most recent join date first.
  7. Parameterized queries ensure user inputs are treated as data, not executable code, preventing SQL injection attacks that could compromise sensitive government data.
  8. SELECT * FROM Transactions WHERE Amount > 50000;
  9. DELETE removes specified records and can be rolled back; TRUNCATE removes all records quickly and cannot be rolled back, which affects data recovery and audit trails in sensitive hospital data.
  10. COUNT returns the number of records matching criteria; SUM adds values in a numeric column. For example, COUNT of sales transactions and SUM of total sales amount provide insights into business performance.

SECTION B (60 Marks) - Answer any TWO Questions

Question 11 (Compulsory - 20 marks)
At Equity Bank, the IT security team is tasked with creating and querying a customer transactions database securely.
a) Design SQL statements to create tables for Customers and Transactions, including appropriate data types and primary keys. (10 marks)
b) Write SQL queries to:
i. Retrieve all transactions for a specific customer with CustomerID 12345.
ii. Calculate the total transaction amount for CustomerID 12345. (10 marks)

Question 12 (20 marks)
Explain how SQL injection attacks can be mitigated when querying databases in public sector institutions such as the Kenya Revenue Authority (KRA). Illustrate your answer with examples of secure SQL query design.

Question 13 (20 marks)
Discuss the process of designing complex SQL queries involving multiple tables using JOIN operations. Use examples relevant to a county government payroll database to explain INNER JOIN, LEFT JOIN, and FULL OUTER JOIN.

Question 14 (20 marks)
You are tasked with querying a hospital database to generate a report of patients admitted in the last 30 days with their attending doctors and treatment status.
a) Outline the SQL query design steps for this task.
b) Provide a sample SQL query implementing these requirements.

Section B - Answers

Question 11
a) CREATE TABLE Customers (CustomerID INT PRIMARY KEY, Name VARCHAR(100), Email VARCHAR(100), PhoneNumber VARCHAR(15));
CREATE TABLE Transactions (TransactionID INT PRIMARY KEY, CustomerID INT, Amount DECIMAL(10,2), TransactionDate DATE, FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID));
b) i. SELECT * FROM Transactions WHERE CustomerID = 12345;
ii. SELECT SUM(Amount) FROM Transactions WHERE CustomerID = 12345;

Question 12
SQL injection can be mitigated by using parameterized queries or prepared statements that separate SQL code from user inputs, preventing attackers from injecting malicious SQL. For example, using placeholders in queries and binding user inputs securely ensures that inputs are treated as data only. Additionally, input validation and least privilege access reduce risks.

Question 13
Designing complex queries requires understanding relationships between tables and choosing appropriate JOINs:
- INNER JOIN returns records with matching keys in both tables, e.g., joining employee and payroll tables to list employees with pay records.
- LEFT JOIN returns all records from the left table and matching ones from the right table, useful to show all employees including those without payroll entries.
- FULL OUTER JOIN returns all records from both tables, including unmatched records on either side, helpful in audit reporting.

Question 14
a) Steps:
1. Identify relevant tables: Patients, Admissions, Doctors, Treatments.
2. Determine join conditions based on foreign keys, e.g., PatientID, DoctorID.
3. Use WHERE clause to filter admissions within the last 30 days using date functions.
4. Select required fields: patient details, doctor names, treatment status.
5. Test query for accuracy and performance.

b) Sample query:
SELECT p.PatientName, d.DoctorName, t.TreatmentStatus, a.AdmissionDate
FROM Admissions a
INNER JOIN Patients p ON a.PatientID = p.PatientID
INNER JOIN Doctors d ON a.DoctorID = d.DoctorID
INNER JOIN Treatments t ON a.AdmissionID = t.AdmissionID
WHERE a.AdmissionDate >= CURDATE() - INTERVAL 30 DAY;

References

  1. TVET CDACC - Secure Databases Curriculum (Cycle 3, 2025)
  2. TVET CDACC - Secure Databases Occupational Standards
  3. Computer Misuse and Cybercrimes Act, 2018
  4. Data Protection Act, 2019

Chapter Practical Activities

Practical 1: Classification of SQL Statements into DDL, DML, DCL, and TCL Categories

Cyber Security · Level 5
Secure Databases
PRACTICAL ASSESSMENT
TIME: 4 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Classify the provided 16 SQL statements into DDL, DML, DCL, and TCL categories on the assessment answer sheet.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
PenList of 16 SQL statements printed on A4 sheets
Assessment answer sheet
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1List of 16 SQL statements printed on A4 sheets1 set per Candidate
2Assessment answer sheet1 per Candidate
3Pen1 per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Identification and Classification of SQL Statements
Candidate reads and understands each SQL statement
(Award 1 mark for correctly identifying understanding of half the statements, 2 marks for all)
2
Candidate correctly classifies SQL statements into DDL category
(Award 1 mark for each correct classification, max 4 marks)
4
Candidate correctly classifies SQL statements into DML category
(Award 1 mark for each correct classification, max 4 marks)
4
Candidate correctly classifies SQL statements into DCL category
(Award 1 mark for each correct classification, max 3 marks)
3
Candidate correctly classifies SQL statements into TCL category
(Award 1 mark for each correct classification, max 3 marks)
3
Sub-Total16
PRODUCT CHECKLIST
All 16 SQL statements correctly classified into exactly one category each
(Award 4 marks if all statements correctly placed; zero if any misclassified)
4
Sub-Total4
GRAND TOTAL20
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)

Practical 2: Design Basic SQL Statements for Secure Database Operations

Cyber Security · Level 5
Secure Databases
PRACTICAL ASSESSMENT
TIME: 4 HOURS
⬇ PDFCandidate Instructions (Candidate Tool)

Type: Individual

INSTRUCTIONS TO CANDIDATE:
1.  You are required to perform the following task:
i.  Write SQL statements to create a database named SecureDB, create two tables Customers and Transactions with specified fields, and perform insert, update, and delete operations as per the task requirements.
2.  You have been provided with the following resources for the practical task:
Tools & EquipmentMaterials
Computer with SQL database management system installedAccess to sample database schema documentation
Keyboard and MouseNotepad and Pen
⬇ PDFResources Required (Cutting List)
S/NItemQuantity
1Computer with SQL database management system installed (e.g. MySQL Workbench or MS SQL Server Management Studio)1 Pc per Candidate
2Access to sample database schema documentation1 set per Candidate
3Keyboard and Mouse1 set per Candidate
4Notepad and Pen1 set per Candidate
⬇ PDFAssessor Guide
Items to be EvaluatedMarks AvailableMarks ObtainedComments
TASK 1: Create and Save Database
Opened SQL database management system and created database named SecureDB
(Award 1 mark for correctly creating and saving the database named SecureDB)
1
Sub-Total1
TASK 2: Create Tables Customers and Transactions
Typed field names correctly for Customers table including CustomerID (PK), FullName, Email, Phone
(Award 1 mark for each correct field name and datatype in Customers table, max 4 marks)
4
Typed field names correctly for Transactions table including TransactionID (PK), CustomerID (FK), Amount, TransactionDate
(Award 1 mark for each correct field name and datatype in Transactions table, max 4 marks)
4
Set primary keys for both tables and foreign key constraint from Transactions.CustomerID to Customers.CustomerID
(Award 2 marks for correctly setting PKs and FK relationship)
2
Sub-Total10
TASK 3: Write Insert Statements
Wrote correct SQL INSERT statement to add at least two records into Customers table
(Award 1.5 marks per correct insert statement, max 3 marks)
3
Wrote correct SQL INSERT statement to add at least two records into Transactions table referencing existing CustomerIDs
(Award 1.5 marks per correct insert statement, max 3 marks)
3
Sub-Total6
TASK 4: Write Update and Delete Statements
Wrote correct SQL UPDATE statement to modify a customer’s phone number
(Award 2 marks for correct update syntax and execution)
2
Wrote correct SQL DELETE statement to remove a transaction record by TransactionID
(Award 2 marks for correct delete syntax and execution)
2
Sub-Total4
TASK 5: Secure Database with Password
Applied password encryption or set database user password as per system capabilities
(Award 2 marks for correctly securing the database with password)
2
Sub-Total2
PRODUCT CHECKLIST
Database SecureDB exists with Customers and Transactions tables created correctly with proper field names, keys, and relationships
(Award 5 marks if database and tables exist and match specifications exactly)
5
At least two records inserted into each table with correct data referencing and data integrity maintained
(Award 4 marks for correctness and referential integrity of inserted data)
4
Update and delete operations executed successfully and affected correct records
(Award 3 marks if update and delete statements executed correctly)
3
Database is password protected or encrypted as required
(Award 3 marks if database is secured with password)
3
Sub-Total15
GRAND TOTAL38
ASSESSMENT OUTCOME:   ☐ Competent    ☐ Not Yet Competent (competent if at least 50%)
🔒

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒Design complex SQL queries for a sales databasePractical 3
🔒Query a MySQL Database Using Command Line InterfacePractical 4
🔒Create and Populate a MySQL Database for a School Management SystemPractical 5
🔒Update and delete records in a MySQL databasePractical 6
🔒Design and Implement SQL Views on MySQL DatabasePractical 7
🔒Create and Execute Stored Procedures in MySQL DatabasePractical 8
🔒Implement database constraints in a secure customer orders databasePractical 9
🔒Optimize and analyze SQL queries using EXPLAIN plans in MySQLPractical 10
Flashcards 20 cards Study deck ▾
Question
1

↻ Tap card to reveal answer
🔒

18 more in this section.

Create a free account
Test Yourself 18 questions Start quiz ▾
0%
0 / 2
🔒

16 more in this section.

Create a free account
Am I competent?

At the start of this chapter we promised you would be able to:

  • Create a database using your chosen DBMS that matches the approved design specifications.
  • Define tables, fields, and relationships accurately based on the database schema.
  • Apply primary keys, foreign keys, and constraints to keep data accurate and reliable.
  • Set up security controls like user accounts, roles, and privileges to protect your database.
  • Implement stored procedures, triggers, and views correctly to enhance database functionality and security.
  • Insert sample data to test that tables, relationships, and security rules work as expected.
  • Document the entire database creation process clearly, following your organization's standards and security policies.

Tick each one you can genuinely do.

So, are you there yet?

You're competent when you can confidently do 50% or more of what this chapter promised.

Sign in to record how you're doing.