- A
Grant CONTROL permission on the database to the user
Why wrong: CONTROL provides full control over the database, which is excessive for read-only access.
- B
Add the user to the 'sales' database role
Why wrong: 'sales' is a schema, not a database role. This would cause an error.
- C
Create a database user for the service principal using the CREATE USER statement with the FROM EXTERNAL PROVIDER option
This maps the Microsoft Entra service principal to a database user.
- D
Grant SELECT on the 'sales' schema to the user
This grants SELECT permission on all tables in the 'sales' schema.
- E
Add the user to the 'db_datareader' fixed database role
The db_datareader role grants read access to all tables in the database.
Quick Answer
The answer is to create a database user for the service principal, add that user to the `db_datareader` fixed database role, and ensure the user is mapped using `CREATE USER [app-name] FROM EXTERNAL PROVIDER`. This works because a service principal in Azure SQL Database is an external identity from Microsoft Entra ID, and it must be represented as a database user before any permissions can be assigned; the `db_datareader` role then grants read access to all tables across all schemas, including the `sales` schema. On the DP-300 exam, this scenario tests your understanding of the difference between server-level and database-level principals, and a common trap is forgetting that service principals require an explicit database user—they cannot be granted roles directly from Azure. A helpful memory tip is "map then role": first map the external identity with `CREATE USER ... FROM EXTERNAL PROVIDER`, then assign the role like `db_datareader` to grant read access to all tables in a schema.
DP-300 Implement a secure environment Practice Question
This DP-300 practice question tests your understanding of implement a secure environment. Match the stated requirement to the specific cloud service, access model, or configuration option — many options are valid in isolation but not for this scenario. After answering, compare your reasoning against the explanation and wrong-answer breakdown below. Once you have made your selection, read the full explanation to reinforce the concept and understand why each distractor is designed to mislead on exam day.
You are a database administrator for a startup that uses Azure SQL Database to run an e-commerce application. The application uses a service principal (Microsoft Entra ID application) to authenticate to the database. You need to grant the service principal the ability to read data from all tables in the 'sales' schema. Which THREE actions should you take?
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
Create a database user for the service principal using the CREATE USER statement with the FROM EXTERNAL PROVIDER option
Option C is correct because a service principal (Microsoft Entra ID application) must have a corresponding database user created using the CREATE USER statement with the FROM EXTERNAL PROVIDER clause. This maps the external identity to a database principal, enabling authentication and authorization within Azure SQL Database.
Key principle: Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Grant CONTROL permission on the database to the user
Why it's wrong here
CONTROL provides full control over the database, which is excessive for read-only access.
- ✗
Add the user to the 'sales' database role
Why it's wrong here
'sales' is a schema, not a database role. This would cause an error.
- ✓
Create a database user for the service principal using the CREATE USER statement with the FROM EXTERNAL PROVIDER option
Why this is correct
This maps the Microsoft Entra service principal to a database user.
Related concept
Read the scenario before looking for a memorised answer.
- ✓
Grant SELECT on the 'sales' schema to the user
Why this is correct
This grants SELECT permission on all tables in the 'sales' schema.
Related concept
Read the scenario before looking for a memorised answer.
- ✓
Add the user to the 'db_datareader' fixed database role
Why this is correct
The db_datareader role grants read access to all tables in the database.
Related concept
Read the scenario before looking for a memorised answer.
Common exam traps
Common exam trap: answer the scenario, not the keyword
The trap here is that candidates often confuse schemas with database roles, leading them to incorrectly select 'Add the user to the sales database role' (Option B) when no such role exists, or they over-provision by granting CONTROL permission (Option A) instead of using the principle of least privilege.
Detailed technical explanation
How to think about this question
Under the hood, Azure SQL Database uses contained database authentication for Microsoft Entra ID principals. The CREATE USER ... FROM EXTERNAL PROVIDER statement creates a database user that references the service principal's object ID in Microsoft Entra ID. Once created, permissions are managed via SQL Server's role-based access control (RBAC) at the database level, where schema-level permissions (e.g., GRANT SELECT ON SCHEMA::sales) are independent of fixed database roles like db_datareader, which grant read access to all user tables across all schemas.
KKey Concepts to Remember
- Read the scenario before looking for a memorised answer.
- Find the constraint that changes the correct option.
- Eliminate answers that are true in general but not in this case.
TExam Day Tips
- Watch for words such as best, first, most likely and least administrative effort.
- Review why wrong options are wrong, not only why the correct option is correct.
Key takeaway
Answer the scenario, not the keyword: identify the specific constraint before choosing the most familiar-sounding option.
Real-world example
How this comes up in practice
A company's IT admin needs to give a contractor read-only access to production logs without sharing account credentials. Using role-based access control (RBAC) and temporary scoped permissions — not a permanent shared password — is the correct pattern. Questions like this test whether you can apply least-privilege access across cloud identity services.
What to study next
Got this wrong? Here's your next step.
Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.
- →
Implement a secure environment — study guide chapter
Learn the concepts, then practise the questions
- →
Implement a secure environment practice questions
Targeted practice on this topic area only
- →
All DP-300 questions
953 questions across all exam domains
- →
Microsoft Azure Database Administrator Associate DP-300 study guide
Full concept coverage aligned to exam objectives
- →
DP-300 practice test guide
How to use practice tests most effectively before exam day
Related practice questions
Related DP-300 practice-question pages
Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.
Plan and configure a high availability and disaster recovery environment practice questions
Practise DP-300 questions linked to Plan and configure a high availability and disaster recovery environment.
Plan and implement data platform resources practice questions
Practise DP-300 questions linked to Plan and implement data platform resources.
Monitor, configure, and optimize database resources practice questions
Practise DP-300 questions linked to Monitor, configure, and optimize database resources.
Configure and manage automation of tasks practice questions
Practise DP-300 questions linked to Configure and manage automation of tasks.
Plan and configure high availability and disaster recovery practice questions
Practise DP-300 questions linked to Plan and configure high availability and disaster recovery.
Implement a secure environment practice questions
Practise DP-300 questions linked to Implement a secure environment.
DP-300 fundamentals practice questions
Practise DP-300 questions linked to DP-300 fundamentals.
DP-300 scenario practice questions
Practise DP-300 questions linked to DP-300 scenario.
DP-300 troubleshooting practice questions
Practise DP-300 questions linked to DP-300 troubleshooting.
Practice this exam
Start a free DP-300 practice session
Short sessions build daily habit. Longer sessions build exam-day stamina. Try a timed session to simulate real conditions.
FAQ
Questions learners often ask
What does this DP-300 question test?
Implement a secure environment — This question tests Implement a secure environment — Read the scenario before looking for a memorised answer..
What is the correct answer to this question?
The correct answer is: Create a database user for the service principal using the CREATE USER statement with the FROM EXTERNAL PROVIDER option — Option C is correct because a service principal (Microsoft Entra ID application) must have a corresponding database user created using the CREATE USER statement with the FROM EXTERNAL PROVIDER clause. This maps the external identity to a database principal, enabling authentication and authorization within Azure SQL Database.
What should I do if I get this DP-300 question wrong?
Identify which exam domain this question belongs to, review the core concept, then practise similar questions from the same domain.
What is the key concept behind this question?
Read the scenario before looking for a memorised answer.
About these practice questions
Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, exam dumps, or protected exam content. Learn why practice questions differ from exam dumps →
Same concept, more angles
1 more ways this is tested on DP-300
These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.
Variation 1. You are a database administrator for a financial services company that uses Azure SQL Database for a critical trading application. The application connects using a service principal (Microsoft Entra application) and executes stored procedures. You need to implement the following security requirements: 1. All connections must use Microsoft Entra authentication with MFA enforced for the service principal. 2. The application should only be able to execute specific stored procedures (usp_Trade, usp_GetQuote) and no other operations. 3. All data at rest must be encrypted using customer-managed keys stored in Azure Key Vault. 4. Auditing must capture all failed login attempts and all changes to the database schema. 5. The database must be protected against SQL injection attacks from the application layer. You have already configured Microsoft Entra authentication and enabled TDE with customer-managed key in Azure Key Vault. Which additional steps should you take to meet all remaining requirements?
hard- ✓ A.Create a database role with EXECUTE permission on the required stored procedures and assign it to the service principal. Configure a Conditional Access policy that requires MFA for the service principal. Enable audit for FAILED_DATABASE_AUTHENTICATION_GROUP and SCHEMA_OBJECT_CHANGE_GROUP. Ensure the application uses parameterized queries.
- B.Create a database role that only has EXECUTE permission on the required stored procedures. Configure dynamic data masking on sensitive columns. Enable audit for FAILED_DATABASE_AUTHENTICATION_GROUP and SCHEMA_OBJECT_CHANGE_GROUP.
- C.Create a contained database user for the service principal with EXECUTE permission. Enable Always Encrypted for sensitive columns. Configure audit for FAILED_DATABASE_AUTHENTICATION_GROUP only.
- D.Create a database role with EXECUTE on the stored procedures. Implement row-level security to restrict data access. Use Microsoft Defender for SQL to detect SQL injection attempts.
Why A: Option D is correct because it addresses all remaining requirements: (1) Conditional Access policy enforces MFA for the service principal; (2) EXECUTE permission on specific stored procedures limits operations; (3) Audit action groups for failed logins and schema changes; (4) Parameterized queries prevent SQL injection. Option A is incorrect because dynamic data masking does not prevent SQL injection. Option B is incorrect because row-level security does not prevent SQL injection. Option C is incorrect because Always Encrypted does not prevent SQL injection and does not enforce MFA.
Keep practising
More DP-300 practice questions
- A DBA needs to create a new Azure SQL Database and wants to ensure that the database automatically fails over to a secon…
- A company uses Azure SQL Managed Instance for its line-of-business applications. They need to ensure that backups are re…
- Refer to the exhibit. A DBA is creating an Azure SQL Managed Instance using the ARM template snippet shown. The DBA need…
- A company is planning to migrate their on-premises SQL Server databases to Azure SQL Managed Instance. They have a datab…
- A company has an Azure SQL Database with a large table that is frequently updated. They notice performance degradation d…
- Which THREE of the following are valid options for migrating an on-premises SQL Server database to Azure SQL Database?
Last reviewed: Jun 24, 2026
This DP-300 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DP-300 exam.
Question Discussion
Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.
Sign in to join the discussion.