A team launches an AI-powered reporting feature against a database containing customer contracts. The assistant answers ordinary questions beautifully, but the service identity can read every customer’s records, the vector-search service receives data before authorization filters run, and the deployment process applies schema changes with an unrestricted production login. None of those flaws is corrected by improving the prompt. They are database security and delivery problems, exactly the sort of cross-cutting engineering decisions covered by DP-800.
Microsoft’s published DP-800 objectives give secure, optimize, and deploy database solutions 35–40% of the exam. The outline includes SQL permissions, row-level security, encryption, Dynamic Data Masking, auditing, passwordless access, protected REST and GraphQL interfaces, secured model and MCP endpoints, execution-plan analysis, transaction isolation, Query Store, SQL Database Projects, branching, approvals, and deployment controls. These topics belong together because one unsafe permission or uncontrolled schema change can compromise a technically correct AI feature. A reliable design proves who can access what, how queries perform, and how production changes are governed.
Establish boundaries at the SQL identity layer
Application users, service workloads, administrators, and AI integrations do not need identical privileges. Separate interactive administration from ordinary application access, and scope service identities to the narrow operations they must perform. Database object-level permissions can limit access to selected tables, views, procedures, or other supported objects. Row-level security (RLS) can apply database-enforced filters to data access in suitable designs, but its effectiveness depends on correct predicates, execution context, and test coverage. An API that accepts an account number must not trust that value alone to prove the caller belongs to that account.
Consider a multitenant support application. A customer service can legitimately read its tenant’s work orders but not neighboring tenants’ contracts. The SQL access design, API authorization, and retrieval filters should consistently enforce that boundary. Test a customer with no orders, one with hundreds, and a request that submits another tenant’s order identifier. Then inspect whether the application uses a broadly privileged shared account that bypasses intended database restrictions. Even where RLS is employed, it is not a replacement for securing connection credentials, administrative permissions, and other database objects. Clear boundaries make security review possible because every privilege has a documented purpose.
Choose encryption and masking for their actual purposes
Encryption addresses confidentiality, but different mechanisms operate at different layers. Always Encrypted can protect selected column values under supported client and database arrangements; database or storage encryption protects other threat surfaces; column-level encryption patterns have distinct key and application considerations. The appropriate choice depends on who must perform decryption, what processing must remain possible, and who controls keys. A system that encrypts customer details at rest but decrypts them into an overprivileged model prompt has not solved the main disclosure risk.
Dynamic Data Masking can limit displayed values in supported contexts, but it is not a substitute for strong authorization or encryption. A highly privileged principal may access unmasked values, and masking should not be treated as protection against every inference technique. Design the permission model first and use masking as one additional measure where it fits. Auditing should then capture meaningful access and administrative changes according to a defensible retention and privacy policy. The key question is not whether a control appears enabled, but whether it addresses the threat that the application actually faces and whether the team can verify its operation.
Secure every interface that can act on the database
REST, GraphQL, and Model Context Protocol (MCP) endpoints can make database capabilities available to application clients or AI agents. That flexibility multiplies the importance of authentication, authorization, tool allowlists, network exposure, and careful request validation. A restricted SQL view does not make the entire endpoint safe if another configured entity exposes the underlying table. An AI agent should not receive a general-purpose production database credential simply because it needs to answer a question. Prefer scoped identity and approved, limited tools; consider managed identity where the supported platform and connection pattern allow it.
Prompt injection and malicious tool instructions are distinct from ordinary SQL injection, but both can lead to unauthorized behavior if trust boundaries are crossed. A retrieved document might contain text telling an agent to export tables or ignore its intended instructions. Treat such content as untrusted data, not as a new instruction authority. An agent that can execute writes needs explicit validation and, for consequential actions, suitable authorization and review outside the model’s natural-language judgment. In Azure application development, application permissions and API access need enforcement at the boundary; DP-800 adds SQL-side security and data-integrity requirements beneath those interfaces.
Diagnose performance with plans and contention evidence
A slow SQL query should be investigated with real execution plans and telemetry rather than cured by adding random indexes. Examine estimated and actual row counts where available, scans and seeks, join choices, parameter sensitivity, memory or I/O pressure, and the behavior of concurrent users. Dynamic management views, Query Store, and relevant platform performance tools can help identify regressions. A query that is fast on a developer’s sample of one thousand rows may behave very differently against millions of rows with skewed customer sizes. DP-800 expects candidates to connect a performance symptom to credible evidence. The DP-300 database-administration scope intersects with this operational tuning work, while DP-800 places it in the design and release of AI-enabled database applications.
Transaction isolation and concurrency control belong in that diagnosis. Two services updating the same order can produce blocking or deadlocks, while an unnecessarily long transaction can hold locks during external AI inference. Distinguish a correctness problem caused by inconsistent reads from a performance problem caused by resource contention. Test the actual business requirement before selecting a more permissive isolation behavior or retry strategy. Model latency and database latency are different measurements; if a user-facing response takes twenty seconds because an external service is slow, rebuilding every SQL index is unlikely to help. Identify where time and work are spent in the complete request path.
Deploy schema changes through reviewable projects
SQL Database Projects can represent database schema as source-controlled artifacts, supporting build validation, comparison, and deployment to supported targets. In a mature workflow, developers propose changes through branches and pull requests, run tests against representative databases, review schema differences, and deploy under controlled permissions. The current DP-800 outline includes SDK-style database projects, static or reference data, secrets management, deployment approvals, code owners, and drift detection. This is a stronger approach than making undocumented manual changes in production and trying to recreate the database later.
Schema deployment can still be destructive even when its source file is well formatted. Renaming a column may appear as dropping and creating it if migration behavior is not planned. Introducing a non-null constraint can fail against existing records. A new index can consume resources during its build. Review the generated deployment plan for data loss, compatibility, lock impact, and rollback or forward-recovery options. Stage changes that need backfills, dual-read compatibility, or application version coordination. The broader delivery practices represented by AZ-400 DevOps engineering are relevant, but DP-800 requires specific knowledge of how SQL schema and data behave when a release is applied.
Prevent drift between code, data, and models
AI-enabled applications often have three independently changing artifacts: application code, database schema, and model or embedding configuration. A successful release may require all three to remain compatible. Changing the dimensions or model used for embeddings can invalidate assumptions about an existing vector index. Deploying a new stored procedure before an application client supports its response structure can break otherwise healthy requests. Manual hotfixes applied in one environment can create drift that is invisible to the next project-based deployment. Keep configuration versions and infrastructure changes explicit.
Build a compatibility matrix for a release: which application version expects which database objects, which model endpoint or embedding configuration it calls, and which API contract is available to clients. Use automated tests for representative SQL behavior, permission boundaries, and application queries, with human review for high-risk changes. Record how urgent security fixes are promoted without abandoning the source-controlled workflow. An emergency patch that is never reconciled into the project becomes an unexplained difference waiting to break the next release. Governance works when the deployed state can be reconstructed from approved sources.
Audit access and data movement as first-class operations
Logs should answer who changed database permissions, which identity invoked a sensitive procedure, whether a model endpoint was called with unexpected volume, and when schema drift began. Choose the appropriate audit sources and retention policies for the specific platform and business needs. Avoid indiscriminately collecting full confidential SQL parameters or model prompts in shared logs; observability must not become a secondary leak. Secure diagnostic access and establish a process for investigating abnormal events without modifying the evidence. An audit table full of events nobody can interpret is not meaningful operational assurance.
For retrieval workflows, record enough source identifiers and policy context to reconstruct how a response obtained its evidence. This can help explain a complaint that an assistant displayed outdated or inappropriate information. But be careful about capturing sensitive source passages in telemetry. A trace can often preserve references, versions, timings, and decision outcomes without duplicating complete confidential documents. Integrate security event investigation with change records so an unusual read surge can be evaluated against a legitimate deployment or an emerging compromise. The database is an operational system, not only a store for the AI application to query.
Rehearse a release that fails in several different ways
A useful DP-800 lab starts with an order database and a restricted application identity. Add a SQL project, a view that exposes permitted fields, and a performance-sensitive query. Now introduce three failures: a permission that exposes one additional tenant, a query whose plan regresses after data growth, and a schema change that would remove a populated column. For each failure, identify the evidence, safe corrective action, and verification test. Add a model-facing endpoint and test whether a malicious retrieved instruction can induce an unauthorized database action. The exercise connects security, performance, and release engineering without relying on a model’s ability to behave perfectly.
The lasting lesson is that AI features increase the number of consumers and execution paths that a database team must govern. They do not repeal established principles of least privilege, data integrity, performance measurement, and controlled deployment. DP-800’s security and delivery domain is substantial because confident SQL engineering makes the surrounding AI feature viable. A solution that is impressive in a demo but cannot explain its permissions, query plans, recovery path, or change history is not ready to operate as a dependable business system.
Continue exploring the technologies and certification concepts that matter most to you.