Ngân hàng đề — Microsoft Azure Data Fundamentals

Tìm thấy 328 câu.

Câu 221
Which statement is an example of Data Definition Language (DDL)?
  1. A SELECT
  2. B INSERT
  3. C DELETE
  4. D DROP
Xem giải thích

🧩 Giải thích nội dung câu hỏi

Câu hỏi yêu cầu xác định câu lệnh nào thuộc Data Definition Language (DDL) trong SQL. DDL là một phần của ngôn ngữ SQL dùng để định nghĩa và quản lý cấu trúc cơ sở dữ liệu, chẳng hạn như tạo, sửa đổi hoặc xóa các đối tượng như bảng (table), schema, index... Không phải là các lệnh thao tác dữ liệu hàng ngày. 🛠️
Ngữ cảnh liên quan đến AWS: Trong các dịch vụ như Amazon RDS (Relational Database Service) hoặc Aurora, SQL DDL được hỗ trợ đầy đủ theo chuẩn ANSI SQL, không thay đổi lớn đến năm 2026 (phiên bản RDS mới nhất hỗ trợ SQL Server, MySQL, PostgreSQL, Oracle với DDL chuẩn).

✅ Đáp án đúng: DROP

Lý do lựa chọn: DROP là lệnh DDL điển hình vì nó xóa hoàn toàn một đối tượng cơ sở dữ liệu (như bảng, view, index), thay đổi cấu trúc dữ liệu chứ không thao tác dữ liệu bên trong. Ví dụ: DROP TABLE users; sẽ xóa toàn bộ bảng users. Đây là đặc trưng cốt lõi của DDL theo chuẩn SQL trên AWS RDS. 🏆

📋 Phân tích tất cả các phương án

Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên nội dung gốc bằng tiếng Anh. Mỗi phương án được đánh giá đúng/sai dựa trên phân loại SQL chuẩn (DDL vs DML).

  • SELECT ❌
    Sai: SELECT thuộc Data Manipulation Language (DML), dùng để truy vấn và lấy dữ liệu từ bảng (ví dụ: SELECT * FROM users;). Không thay đổi cấu trúc cơ sở dữ liệu.

  • INSERT ❌
    Sai: INSERT thuộc DML, dùng để thêm dữ liệu mới vào bảng (ví dụ: INSERT INTO users VALUES (...);). Chỉ thao tác dữ liệu, không định nghĩa cấu trúc.

  • DELETE ❌
    Sai: DELETE thuộc DML, dùng để xóa dữ liệu trong bảng (ví dụ: DELETE FROM users WHERE id=1;). Không xóa cấu trúc bảng, chỉ xóa hàng dữ liệu.

  • DROP ✅
    Đúng: Như đã giải thích, DROP là DDL vì xóa cấu trúc đối tượng (bảng, database...), không thể phục hồi dễ dàng và yêu cầu quyền cao hơn.

📘 Tài liệu tham khảo

  • AWS RDS Documentation: SQL Commands in Amazon RDS (cập nhật 2025-2026, xác nhận DDL: CREATE/ALTER/DROP).
  • Microsoft Learn (Azure SQL tương đương): DDL Statements (DROP là DDL chuẩn).
  • ANSI SQL Standard (ISO/IEC 9075): Phân loại DDL/DML không thay đổi đến 2026. 🔗
Câu 222
A team of developers has computers that run Windows 10 and Ubuntu Desktop.
The developers need to connect to and query an Azure SQL database from each of their computers. The developers require code assistance features such as
IntelliSense.
What should the developers use?
  1. A sqlcmd
  2. B Microsoft SQL Server Management Studio (SSMS)
  3. C Azure Data Studio
  4. D Azure Data Explorer
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi mô tả một nhóm lập trình viên sử dụng máy tính chạy Windows 10 và Ubuntu Desktop (một hệ điều hành Linux). Họ cần kết nối và truy vấn (query) một cơ sở dữ liệu Azure SQL từ các máy tính này. Yêu cầu quan trọng là công cụ phải hỗ trợ tính năng hỗ trợ code như IntelliSense (tự động hoàn thành mã, gợi ý cú pháp SQL, giúp lập trình viên viết code nhanh và chính xác hơn).

📌 Mục tiêu chính: Tìm công cụ cross-platform (chạy được trên cả Windows và Linux/Ubuntu), hỗ trợ kết nối Azure SQL và IntelliSense. Đây là kiến thức cơ bản trong Azure Data Fundamentals (DP-900), nhấn mạnh vào các công cụ quản lý dữ liệu Azure đa nền tảng. (Kiến thức cập nhật đến 2026: Azure Data Studio phiên bản mới nhất hỗ trợ IntelliSense nâng cao với AI integration qua GitHub Copilot).

✅ Đáp án đúng: Azure Data Studio

Lý do lựa chọn: Azure Data Studio là công cụ miễn phí, nhẹ, cross-platform (hỗ trợ Windows, macOS, Linux/Ubuntu) được Microsoft thiết kế dành riêng cho Azure. Nó cho phép kết nối trực tiếp đến Azure SQL Database, hỗ trợ IntelliSense đầy đủ (bao gồm autocompletion, syntax highlighting, error detection). Công cụ này lý tưởng cho developers cần query SQL trên nhiều OS mà không cần cài đặt phức tạp.

🛠️ Nguồn tham khảo:

📋 Giải thích tất cả các phương án (đúng/sai)

  • ❌ sqlcmd
    Sai vì: sqlcmd là công cụ command-line (dòng lệnh) thuần túy, chỉ hỗ trợ thực thi lệnh SQL cơ bản mà không có giao diện đồ họa hay IntelliSense. Nó chạy được trên Windows/Linux nhưng thiếu tính năng hỗ trợ code, không phù hợp cho developers cần autocompletion. Chỉ dùng cho script automation đơn giản.

  • ❌ Microsoft SQL Server Management Studio (SSMS)
    Sai vì: SSMS là công cụ mạnh mẽ với IntelliSense, nhưng chỉ chạy trên Windows (không hỗ trợ Ubuntu/Linux native). Developers dùng Ubuntu sẽ gặp khó khăn, phải dùng workaround như Wine (không ổn định). Không đáp ứng yêu cầu cross-platform.

  • ✅ Azure Data Studio
    Đúng vì: Như đã giải thích ở trên, đây là lựa chọn hoàn hảo: Cross-platform (Windows/Ubuntu), kết nối Azure SQL dễ dàng qua connection string, và IntelliSense tích hợp (hỗ trợ SQL, Python, notebooks). Extensions mở rộng thêm tính năng như query history, charting. Phù hợp 100% cho developers đa nền tảng.

  • ❌ Azure Data Explorer
    Sai vì: Azure Data Explorer (nay là Azure Data Explorer hoặc Kusto) dành cho big data analytics với ngôn ngữ KQL (Kusto Query Language), không hỗ trợ query SQL chuẩn cho Azure SQL Database. Nó dùng cho log analytics/hot data, không có IntelliSense cho SQL và không phải công cụ kết nối database thông thường.

🧠 Lời khuyên học tập: Trong kỳ thi Azure DP-900, hãy nhớ Azure Data Studio là "ngôi sao" cho cross-platform SQL tooling! Nếu cần thực hành, tải tại azuredatastudio.net. 😊

Câu 223
You need to ensure that users use multi-factor authentication (MFA) when connecting to an Azure SQL database.
Which type of authentication should you use?
  1. A service principal authentication
  2. B Azure Active Directory (Azure AD) authentication
  3. C SQL authentication
  4. D certificate authentication
Xem giải thích

🧩 Phân tích chi tiết câu hỏi trắc nghiệm

📘 Nội dung câu hỏi:
Câu hỏi yêu cầu đảm bảo rằng người dùng (users) phải sử dụng xác thực đa yếu tố (multi-factor authentication - MFA) khi kết nối đến một cơ sở dữ liệu Azure SQL. Cụ thể, cần chọn loại xác thực (authentication type) phù hợp nhất để ép buộc MFA.
🛠️ Bối cảnh kỹ thuật: Azure SQL Database hỗ trợ nhiều phương thức xác thực khác nhau. MFA là tính năng bảo mật nâng cao, yêu cầu ít nhất hai yếu tố xác thực (ví dụ: mật khẩu + mã OTP từ app như Microsoft Authenticator). Không phải tất cả phương thức xác thực đều hỗ trợ MFA cho người dùng cá nhân; chỉ những phương thức tích hợp với hệ thống quản lý danh tính trung tâm mới làm được điều này. Câu hỏi tập trung vào người dùng, không phải ứng dụng hoặc dịch vụ.

✅ Đáp án đúng: Azure Active Directory (Azure AD) authentication
Lý do lựa chọn:
Azure AD (nay gọi là Microsoft Entra ID từ năm 2023, nhưng vẫn tương thích với tên cũ trong tài liệu) là phương thức xác thực dựa trên danh tính đám mây, hỗ trợ đầy đủ MFA cho người dùng. Khi cấu hình Azure SQL Database sử dụng Azure AD authentication, bạn có thể kích hoạt MFA thông qua chính sách Conditional Access trong Azure AD. Người dùng sẽ phải xác thực MFA mỗi khi kết nối (qua công cụ như SSMS, Azure Data Studio). Điều này đảm bảo tuân thủ yêu cầu câu hỏi.
(Kiến thức cập nhật đến 2026: Phiên bản Azure SQL hỗ trợ Entra ID Premium P1/P2 cho MFA nâng cao, không thay đổi cơ bản).

📋 Giải thích tất cả các phương án (đúng và sai):

  • ✅ Azure Active Directory (Azure AD) authentication
    Phương án ĐÚNG vì tích hợp trực tiếp với Azure AD/Entra ID, cho phép áp dụng MFA qua Conditional Access policies. Người dùng phải xác thực MFA khi kết nối đến Azure SQL (hỗ trợ Universal Authentication với MFA từ năm 2019 và ổn định đến 2026).

  • ❌ service principal authentication
    Phương án SAI vì service principal dùng cho ứng dụng/dịch vụ tự động (như app đăng ký trong Azure AD), không dành cho người dùng cá nhân. Nó dựa trên client secret hoặc certificate, không hỗ trợ MFA (MFA chỉ áp dụng cho interactive user sign-in).

  • ❌ SQL authentication
    Phương án SAI vì sử dụng username/password truyền thống lưu trữ trong SQL Server, không tích hợp MFA. Đây là phương thức cơ bản, không liên kết với Azure AD, nên không thể ép buộc MFA (dễ bị tấn công brute-force).

  • ❌ certificate authentication
    Phương án SAI vì dựa trên chứng chỉ số (certificate) để xác thực, thường dùng cho kết nối an toàn nhưng không hỗ trợ MFA. Nó chỉ kiểm tra chứng chỉ hợp lệ, không yêu cầu yếu tố thứ hai như OTP từ người dùng.

🔗 Tài liệu tham khảo (cập nhật mới nhất 2026):

Hy vọng phân tích này giúp bạn nắm vững kiến thức Azure Data Fundamentals! 🚀

Câu 224
What is a benefit of hosting a database on Azure SQL managed instance as compared to an Azure SQL database?
  1. A built-in high availability
  2. B native support for cross-database queries and transactions
  3. C system-initiated automatic backups
  4. D support for encryption at rest
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi trắc nghiệm này tập trung vào việc so sánh lợi ích của việc lưu trữ cơ sở dữ liệu trên Azure SQL Managed Instance so với Azure SQL Database.
✅ Azure SQL Database là dịch vụ cơ sở dữ liệu PaaS (Platform as a Service) thuần túy, được thiết kế cho các ứng dụng cloud-native với mô hình serverless hoặc vCore, hỗ trợ tự động scale và quản lý dễ dàng, nhưng có một số hạn chế về tính tương thích với SQL Server on-premises (như không hỗ trợ đầy đủ các tính năng enterprise-level).
✅ Azure SQL Managed Instance là dịch vụ PaaS nâng cao hơn, gần giống nhất với SQL Server on-premises, cung cấp mạng ảo riêng (VNet), hỗ trợ migration dễ dàng từ on-prem, và các tính năng nâng cao như cross-database queries/transactions.
🛠️ Câu hỏi yêu cầu xác định lợi ích độc đáo (benefit) mà Managed Instance có so với Azure SQL Database, dựa trên phiên bản Azure SQL mới nhất (cập nhật đến 2026, theo tài liệu Microsoft Azure SQL docs).

📘 Tài liệu tham khảo chính:

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: native support for cross-database queries and transactions
🧩 Lý do: Azure SQL Managed Instance hỗ trợ nguyên bản (native) các truy vấn và giao dịch chéo cơ sở dữ liệu (cross-database queries/transactions) giữa nhiều database trong cùng một instance, giống hệt SQL Server on-premises. Điều này cho phép các ứng dụng sử dụng các tính năng như elastic queries hoặc linked servers một cách tự nhiên. Trong khi đó, Azure SQL Database không hỗ trợ tính năng này trực tiếp giữa các database riêng biệt (chỉ hỗ trợ trong cùng một elastic pool với giới hạn, nhưng không phải native/full như Managed Instance). Đây là lợi ích lớn cho migration và ứng dụng enterprise cần tích hợp đa database.

📋 Giải thích tất cả các phương án (đúng/sai)

Dưới đây là phân tích từng phương án một cách chi tiết:

  • ❌ built-in high availability
    Phương án này sai vì cả Azure SQL Managed Instance và Azure SQL Database đều cung cấp high availability (HA) tích hợp sẵn với SLA 99.99%, sử dụng Always On Availability Groups và automatic failover. Không phải lợi ích độc đáo của Managed Instance.

  • ✅ native support for cross-database queries and transactions
    Phương án này đúng như đã giải thích ở trên. Managed Instance hỗ trợ đầy đủ tính năng này (giống SQL Server 2022+), trong khi Azure SQL Database yêu cầu workaround như elastic queries (không native và có hạn chế về performance/transactions).

  • ❌ system-initiated automatic backups
    Phương án này sai vì cả hai dịch vụ đều có sao lưu tự động do hệ thống khởi tạo (system-initiated), với point-in-time restore lên đến 35 ngày. Managed Instance còn hỗ trợ thêm sao lưu tùy chỉnh, nhưng không phải lợi ích so sánh độc quyền.

  • ❌ support for encryption at rest
    Phương án này sai vì cả hai đều hỗ trợ mã hóa tại chỗ (encryption at rest) mặc định qua Transparent Data Encryption (TDE) và Azure Storage encryption, tuân thủ chuẩn như GDPR/FIPS. Không khác biệt đáng kể.

🛠️ Kết luận: Câu hỏi nhấn mạnh sự khác biệt về tính tương thích và tính năng nâng cao của Managed Instance, lý tưởng cho workload hybrid/on-prem migration! Nếu cần thêm ví dụ code hoặc demo, hãy hỏi nhé! 🚀

Câu 225
You need to design and model a database by using a graphical tool that supports project-oriented offline database development.
What should you use?
  1. A Microsoft SQL Server Data Tools (SSDT)
  2. B Microsoft SQL Server Management Studio (SSMS)
  3. C Azure Databricks
  4. D Azure Data Studio
Xem giải thích

🧩 Phân tích nội dung câu hỏi

Câu hỏi yêu cầu thiết kế và mô hình hóa cơ sở dữ liệu (database) bằng công cụ đồ họa (graphical tool), với các đặc điểm chính:

  • Hỗ trợ phát triển theo hướng dự án (project-oriented): Nghĩa là làm việc với các dự án database như một phần của giải pháp lớn hơn (ví dụ: trong Visual Studio).
  • Phát triển offline: Có thể làm việc mà không cần kết nối trực tiếp đến server database thực tế, tập trung vào mô hình hóa schema, table, view, stored procedure... một cách độc lập.
    📌 Mục tiêu chính: Tìm công cụ phù hợp cho việc thiết kế và mô hình hóa database một cách chuyên nghiệp, không chỉ quản lý hoặc query đơn lẻ. Đây là kiến thức cơ bản trong Microsoft Azure Data Fundamentals (DP-900), liên quan đến các công cụ phát triển SQL Server và Azure SQL. (Lưu ý: Dù đề cập AWS, nội dung câu hỏi tập trung vào hệ sinh thái Microsoft/SQL Server).

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: Microsoft SQL Server Data Tools (SSDT)
🛠️ Lý do: SSDT là bộ công cụ tích hợp trong Visual Studio, chuyên hỗ trợ phát triển database theo dự án (project-based) với giao diện đồ họa đầy đủ (SQL Server Database Project). Nó cho phép:

  • Mô hình hóa database offline hoàn toàn (tạo table, relationship, index qua designer đồ họa).
  • So sánh schema (Schema Compare), deploy tự động, và quản lý version control.
  • Hỗ trợ các phiên bản SQL Server mới nhất (2022+) và Azure SQL Database.
    Đây là lựa chọn chuẩn theo tài liệu Microsoft cập nhật đến 2026 (SQL Server 2022 và SSDT phiên bản 17.x+).

📋 Giải thích chi tiết tất cả các phương án

Dưới đây là phân tích từng lựa chọn, giữ nguyên văn bản gốc bằng tiếng Anh. Mỗi phương án được đánh giá đúng/sai kèm lý do cụ thể:

  • ✅ [ĐÚNG] Microsoft SQL Server Data Tools (SSDT)
    🟢 Đúng vì: Như đã giải thích ở trên, SSDT được thiết kế chính xác cho project-oriented offline development với công cụ đồ họa (Visual Database Designer). Nó tích hợp Git, CI/CD, và hỗ trợ full lifecycle database dev. Phù hợp 100% với yêu cầu câu hỏi.

  • ❌ [SAI] Microsoft SQL Server Management Studio (SSMS)
    🔴 Sai vì: SSMS là công cụ quản lý và query database online (kết nối trực tiếp đến server), tập trung vào scripting, monitoring, và execution query. Không hỗ trợ project-oriented hay phát triển offline theo dự án; chỉ có Table Designer cơ bản, không đồ họa đầy đủ cho modeling lớn.

  • ❌ [SAI] Azure Databricks
    🔴 Sai vì: Azure Databricks là nền tảng big data analytics dựa trên Apache Spark cho dữ liệu lớn (data lakehouse), hỗ trợ notebooks và ML. Không phải công cụ graphical modeling cho database relational hay offline project dev; chủ yếu online và dành cho ETL/ analytics, không liên quan đến thiết kế schema SQL truyền thống.

  • ❌ [SAI] Azure Data Studio
    🔴 Sai vì: Azure Data Studio là cross-platform editor nhẹ (như VS Code extension) cho query SQL, kết nối multi-engine (SQL Server, Postgres...). Có một số extension cho schema view, nhưng không hỗ trợ project-oriented offline development hay designer đồ họa chuyên sâu; chủ yếu cho ad-hoc querying và exploration.

📘 Tài liệu tham khảo (cập nhật mới nhất đến 2026)

  • Microsoft Docs: SQL Server Data Tools (SSDT) (phiên bản SQL Server 2022).
  • Azure Data Fundamentals (DP-900): Database tools overview.
  • So sánh SSMS vs SSDT: Official blog.
    ⚠️ Kiến thức dựa trên phiên bản AWS không áp dụng trực tiếp (vì câu hỏi về Microsoft), nhưng tương đương AWS là AWS Schema Conversion Tool hoặc X-Ray – không khớp lựa chọn.
Câu 226
You have a transactional application that stores data in an Azure SQL managed instance.
When should you implement a read-only database replica?
  1. A You need to generate reports without affecting the transactional workload.
  2. B You need to audit the transactional application.
  3. C You need to implement high availability in the event of a regional outage.
  4. D You need to improve the recovery point objective (RPO).
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi tập trung vào Azure SQL Managed Instance (một dịch vụ quản lý cơ sở dữ liệu SQL Server trên Azure), nơi lưu trữ dữ liệu cho một ứng dụng giao dịch (transactional application). Câu hỏi hỏi khi nào nên triển khai một bản sao cơ sở dữ liệu chỉ đọc (read-only database replica).

📘 Bối cảnh chính: Azure SQL Managed Instance hỗ trợ tính năng read-scale-out replicas (bản sao chỉ đọc có thể mở rộng), cho phép tạo các replica chỉ đọc để xử lý workload đọc nặng (như báo cáo, phân tích) mà không ảnh hưởng đến hiệu suất của workload giao dịch chính (OLTP - Online Transaction Processing). Tính năng này giúp tách biệt workload đọc và ghi, giảm tải cho instance chính. Kiến thức dựa trên phiên bản mới nhất của Azure SQL Managed Instance (cập nhật đến năm 2026, theo tài liệu Microsoft Learn).

Nguồn tham khảo:

✅ Đáp án đúng và lý do lựa chọn

Đáp án đúng: You need to generate reports without affecting the transactional workload.

Lý do: 🛠️ Trong Azure SQL Managed Instance, read-only replicas được thiết kế chính để offload workload đọc như tạo báo cáo (reporting), phân tích dữ liệu, giúp workload giao dịch chính (ghi/đọc nhanh) không bị ảnh hưởng về hiệu suất. Các replica này tự động đồng bộ dữ liệu gần thời gian thực (lag thấp) và có thể mở rộng đến 4 replicas mặc định (có thể tăng). Điều này tối ưu hóa chi phí và hiệu suất cho các ứng dụng OLTP kết hợp OLAP nhẹ.

📋 Giải thích tất cả các phương án (đúng và sai)

Dưới đây là phân tích từng phương án một cách chi tiết, giữ nguyên văn bản gốc tiếng Anh:

  • ✅ You need to generate reports without affecting the transactional workload.
    🟢 Đúng: Như đã giải thích ở trên, đây là use case lý tưởng. Read-only replicas giúp xử lý báo cáo mà không làm chậm instance chính, giảm CPU/IO tải. Ví dụ: Ứng dụng giao dịch chạy mượt, báo cáo chạy trên replica riêng.

  • ❌ You need to audit the transactional application.
    🔴 Sai: Auditing (kiểm toán) ứng dụng giao dịch sử dụng Azure SQL Auditing hoặc Azure Policy, tích hợp với Log Analytics hoặc Event Hubs, không cần read-only replica. Replica chỉ đọc không hỗ trợ ghi log audit hoặc theo dõi thay đổi ứng dụng.

  • ❌ You need to implement high availability in the event of a regional outage.
    🔴 Sai: High availability (HA) và disaster recovery (DR) cho Azure SQL Managed Instance dùng Auto-failover groups, Zone-redundant configuration, hoặc cross-region replication với readable secondary (không chỉ read-only thuần). Read-only replicas không failover tự động và chỉ ở cùng region, không xử lý outage vùng.

  • ❌ You need to improve the recovery point objective (RPO).
    🔴 Sai: RPO (thời gian mất dữ liệu tối đa) được cải thiện bởi backups tự động (1-35 ngày retention), point-in-time restore, hoặc geo-replication. Read-only replicas chỉ đồng bộ gần real-time (lag vài giây/phút) nhưng không giảm RPO trực tiếp, vì chúng không dùng cho recovery chính.

🧠 Kết luận: Tính năng read-only replica rất mạnh cho workload hỗn hợp, giúp scale đọc mà không tốn kém như Hyperscale. Nếu cần HA/DR nâng cao, kết hợp với failover groups!

Câu 227 Chọn nhiều đáp án
You need to query a table named Products in an Azure SQL database.
Which three requirements must be met to query the table from the internet? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.
  1. A You must be assigned the Reader role for the resource group that contains the database.
  2. B You must have SELECT access to the Products table.
  3. C You must have a user in the database.
  4. D You must be assigned the Contributor role for the resource group that contains the database.
  5. E Your IP address must be allowed to connect to the database.
Xem giải thích

🧩 Phân tích câu hỏi trắc nghiệm Azure SQL Database

📘 Giải thích nội dung câu hỏi:
Câu hỏi yêu cầu xác định ba yêu cầu bắt buộc phải đáp ứng để có thể truy vấn (query) một bảng tên là Products trong cơ sở dữ liệu Azure SQL Database từ internet. Đây là câu hỏi kiểu multiple correct answers (mỗi lựa chọn đúng chiếm 1 điểm), tập trung vào các điều kiện về kết nối, xác thực và phân quyền dữ liệu.

Để truy vấn từ internet, bạn cần:

  • Kết nối được đến server database qua firewall (IP phải được cho phép).
  • Xác thực vào database (có user hợp lệ).
  • Phân quyền cụ thể trên bảng (SELECT permission).
    Lưu ý: Azure SQL sử dụng mô hình logical server với firewall rules, SQL authentication hoặc Azure AD, và row-level/column-level security. Kiến thức dựa trên phiên bản Azure SQL mới nhất (2024-2026), hỗ trợ public endpoint với IP firewall và Private Link (nhưng câu hỏi nhấn mạnh "from the internet" nên tập trung public access).

✅ Đáp án đúng (3 lựa chọn):
Ba yêu cầu chính là:

  • You must have SELECT access to the Products table.
  • You must have a user in the database.
  • Your IP address must be allowed to connect to the database.

🛠️ Lý do lựa chọn các đáp án đúng:
Những yêu cầu này là bắt buộc theo thứ tự logic: Đầu tiên, IP phải được firewall cho phép để kết nối từ internet (qua Azure SQL server firewall rules). Sau đó, cần một user trong database để xác thực (SQL login hoặc Azure AD user). Cuối cùng, user đó phải có SELECT permission trực tiếp hoặc gián tiếp trên bảng Products để thực thi câu lệnh SELECT. Không có chúng, kết nối sẽ bị chặn hoặc truy vấn thất bại với lỗi permission denied. Đây là quy trình chuẩn của Azure SQL theo tài liệu Microsoft (cập nhật 2026).

📋 Giải thích chi tiết từng phương án (giữ nguyên text gốc):

  • ❌ You must be assigned the Reader role for the resource group that contains the database.
    Sai vì role Reader ở mức Azure RBAC (Resource-Based Access Control) chỉ cho phép xem metadata và tài nguyên quản lý (như cấu hình server, database), không cấp quyền truy cập dữ liệu (data plane) bên trong database. Để query dữ liệu, cần permission SQL cụ thể, không phải RBAC role ở resource group.

  • ✅ You must have SELECT access to the Products table.
    Đúng vì để thực thi lệnh SELECT trên bảng Products, user phải có quyền SELECT trực tiếp (GRANT SELECT ON Products) hoặc qua role/schema (như db_datareader). Đây là yêu cầu data plane permission bắt buộc, kiểm tra qua SQL query như HAS_PERMS_BY_NAME('Products', 'OBJECT', 'SELECT').

  • ✅ You must have a user in the database.
    Đúng vì Azure SQL yêu cầu user mapping từ login (server-level) vào database cụ thể (CREATE USER). Không có user trong database, bạn không thể authenticate và truy vấn, dù đã kết nối server thành công. Áp dụng cho cả SQL auth và Azure AD principals.

  • ❌ You must be assigned the Contributor role for the resource group that contains the database.
    Sai vì role Contributor ở mức management plane cho phép chỉnh sửa tài nguyên (tạo/xóa database, firewall), nhưng không cấp quyền query dữ liệu. Đây là over-privilege và không liên quan đến truy vấn từ internet; chỉ cần data permissions là đủ.

  • ✅ Your IP address must be allowed to connect to the database.
    Đúng vì Azure SQL có server-level firewall (Public endpoint) chặn tất cả kết nối từ internet theo mặc định. Phải thêm IP của bạn vào firewall rules (qua portal, CLI hoặc Deny public network access = No) để TCP port 1433 mở. Nếu dùng Private Endpoint, không cần nhưng câu hỏi chỉ "from the internet".

📚 Tài liệu tham khảo (cập nhật mới nhất 2026):

Hy vọng phân tích này giúp bạn nắm vững kiến thức Azure SQL! 🚀 Nếu cần thêm ví dụ code SQL, hãy hỏi nhé!

Câu 228
Which clause should you use in a SELECT statement to combine rows in one table with rows in another table?
  1. A SET
  2. B VALUES
  3. C KEY
  4. D JOIN
Xem giải thích

🧩 Giải thích chi tiết nội dung câu hỏi

Câu hỏi này tập trung vào cú pháp SQL cơ bản trong một câu lệnh SELECT, cụ thể là mệnh đề (clause) nào được sử dụng để kết hợp (combine) các hàng (rows) từ một bảng với các hàng từ bảng khác. Đây là kiến thức nền tảng trong xử lý dữ liệu quan hệ (relational data), thường áp dụng trong các dịch vụ AWS như Amazon RDS (hỗ trợ SQL Server, MySQL, PostgreSQL), Amazon Athena (query dữ liệu trên S3 bằng SQL chuẩn ANSI), hoặc Amazon Redshift (data warehouse với SQL nâng cao).

Mục tiêu là tìm mệnh đề giúp liên kết hai hoặc nhiều bảng dựa trên điều kiện chung (như khóa chính/khóa ngoại), thay vì chỉ liệt kê dữ liệu từ một bảng duy nhất. Kiến thức này vẫn giữ nguyên tính chuẩn xác đến năm 2026, theo SQL:2023 standard mà AWS hỗ trợ đầy đủ (ví dụ: Athena engine phiên bản 3 với Trino, Redshift RA3 nodes hỗ trợ JOIN hiệu suất cao).

✅ Đáp án đúng: JOIN

Lý do lựa chọn:
Mệnh đề JOIN là lựa chọn chính xác vì nó được thiết kế đặc biệt để kết hợp dữ liệu từ nhiều bảng trong câu SELECT. Ví dụ: SELECT * FROM table1 JOIN table2 ON table1.id = table2.id;. JOIN hỗ trợ nhiều loại như INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN, giúp xử lý hiệu quả dữ liệu lớn trên AWS (tối ưu hóa với columnar storage ở Redshift hoặc federated queries ở Athena). Không có mệnh đề nào khác thay thế trực tiếp chức năng này.

🔍 Phân tích tất cả các phương án (đúng và sai)

Dưới đây là phân tích chi tiết từng lựa chọn, giữ nguyên nội dung văn bản gốc bằng tiếng Anh. Mỗi phương án được đánh giá dựa trên vai trò thực tế trong SQL trên AWS:

  • SET ❌ SAI
    Mệnh đề SET dùng để cập nhật giá trị cột trong câu lệnh UPDATE (ví dụ: UPDATE table1 SET column1 = 'value' WHERE condition;), không phải để kết hợp hàng từ hai bảng. Nó chỉ thay đổi dữ liệu trong một bảng, không liên kết bảng nào. Trong AWS RDS hoặc Athena, SET không áp dụng cho SELECT để join.

  • VALUES ❌ SAI
    VALUES dùng để chèn dữ liệu vào bảng trong INSERT (ví dụ: INSERT INTO table1 VALUES (1, 'value');) hoặc tạo bảng tạm thời trong SELECT đơn giản. Nó chỉ cung cấp dữ liệu literal, không kết hợp rows từ bảng khác. Athena hỗ trợ VALUES cho CTEs (Common Table Expressions), nhưng không thay thế JOIN.

  • KEY ❌ SAI
    KEY không phải là mệnh đề độc lập trong SELECT; nó thường xuất hiện trong CREATE TABLE hoặc FOREIGN KEY constraints để định nghĩa khóa (ví dụ: PRIMARY KEY (id)). Không có chức năng kết hợp rows giữa các bảng. Trong Redshift hoặc RDS, KEY chỉ dùng cho schema design, không dùng trong query SELECT.

  • JOIN ✅ ĐÚNG
    Như đã giải thích, JOIN là mệnh đề chuẩn để kết hợp rows từ nhiều bảng dựa trên điều kiện ON. AWS cập nhật hỗ trợ JOIN phân tán (distributed JOIN) ở Athena (phiên bản 2026 với ML-accelerated queries) và Redshift (sử dụng sort-merge JOIN cho petabyte-scale data). Đây là lựa chọn duy nhất phù hợp.

📘 Tài liệu tham khảo

  • AWS Athena Documentation (SQL Reference, 2026): Querying with JOIN – Hướng dẫn chi tiết các loại JOIN.
  • Amazon Redshift SQL Reference (RA3 nodes, 2026): JOIN Clause.
  • SQL Standard (ISO/IEC 9075:2023): Xác nhận JOIN là clause chính thức cho table combination (áp dụng toàn bộ AWS SQL engines).
  • Microsoft Azure Synapse Analytics (tương đương AWS Redshift): JOIN (Transact-SQL) – Kiến thức cơ bản giống nhau cho Azure Data Fundamentals.

🛠️ Lời khuyên học tập: Thực hành JOIN trên AWS Free Tier (Athena console) để nắm vững! Nếu cần ví dụ code, hãy hỏi thêm nhé! 🚀

Câu 229
Your company needs to ensure that an Azure virtual machine can connect to Azure SQL databases without exposing the databases to the internet.
What should you use?
  1. A Azure Application Gateway
  2. B Azure Traffic Manager
  3. C Azure DNS
  4. D Azure Private Link
Xem giải thích

🧩 Phân tích chi tiết nội dung câu hỏi

Câu hỏi này tập trung vào an ninh mạng và kết nối private trong Azure. Cụ thể:
Công ty của bạn cần đảm bảo một Azure Virtual Machine (VM) có thể kết nối đến Azure SQL databases mà không expose (phơi bày) các database ra internet.
📌 Mục tiêu chính: Tạo kết nối an toàn, riêng tư giữa VM (trong VNet) và Azure SQL (dịch vụ PaaS), tránh traffic đi qua public internet để giảm rủi ro bảo mật, tuân thủ zero-trust model.
🛡️ Bối cảnh: Azure SQL thường có public endpoint mặc định, nhưng cần private connectivity để tránh DDoS, man-in-the-middle attacks. Giải pháp phải hỗ trợ private endpoint trong VNet.

Lý do lựa chọn:
Azure Private Link là dịch vụ private connectivity cho phép tạo private endpoint trong Virtual Network (VNet) của bạn, kết nối trực tiếp đến Azure SQL Database mà không cần public IP hoặc expose ra internet. Traffic chỉ lưu thông nội bộ Azure backbone network, đảm bảo zero exposure.
🆕 Cập nhật mới nhất (đến 2026): Private Link hỗ trợ Azure SQL Managed Instance, Hyperscale, và tích hợp với Private DNS Zone cho resolution tự động. Đây là best practice theo Microsoft Security baselines.
📘 Nguồn tham khảo:

🔍 Giải thích tất cả các phương án (đúng/sai)

  • [SAI] Azure Application Gateway
    ❌ Sai vì: Application Gateway là Layer 7 load balancer với WAF (Web Application Firewall), chủ yếu dùng cho public-facing web apps để route HTTP/HTTPS traffic. Nó không tạo private connectivity đến PaaS như Azure SQL, và thường expose endpoint ra internet (dù có internal mode). Không phù hợp cho database private access.

  • [SAI] Azure Traffic Manager
    ❌ Sai vì: Traffic Manager là dịch vụ DNS-based global traffic routing, dùng để phân phối traffic giữa các endpoint public (như regions, on-prem). Nó yêu cầu public DNS resolution và không hỗ trợ private endpoint, dẫn đến expose ra internet – trái ngược yêu cầu câu hỏi.

  • [SAI] Azure DNS
    ❌ Sai vì: Azure DNS chỉ là DNS hosting service để resolve tên miền, không cung cấp kết nối private hay bảo mật traffic. Nó chỉ hỗ trợ name resolution (có thể dùng với Private DNS Zone), nhưng không ngăn expose database ra internet hay tạo endpoint private.

  • [ĐÚNG] Azure Private Link
    ✅ Đúng vì: Như đã giải thích ở trên, đây là giải pháp lý tưởng với private endpoint, hỗ trợ Azure SQL trực tiếp. Traffic encrypted qua Azure network, hoàn toàn private và scalable.
    🛠️ Cách triển khai nhanh: Tạo Private Endpoint cho Azure SQL trong VNet của VM, link với Private DNS Zone để resolve FQDN nội bộ.

Câu 230
Which T-SQL statement should be used to instruct a database management system to use an index instead of performing a full table scan?
  1. A SELECT
  2. B WHERE
  3. C JOIN
Xem giải thích

🧩 Phân tích chi tiết câu hỏi trắc nghiệm

Câu hỏi: Which T-SQL statement should be used to instruct a database management system to use an index instead of performing a full table scan?

📘 Giải thích nội dung câu hỏi:
Câu hỏi này tập trung vào ngôn ngữ T-SQL (Transact-SQL) của Microsoft SQL Server (bao gồm Azure SQL Database), hỏi về câu lệnh (statement hoặc clause) nào được sử dụng để hướng dẫn hoặc chỉ thị cho hệ quản trị cơ sở dữ liệu (DBMS) ưu tiên sử dụng index thay vì quét toàn bộ bảng (full table scan). Trong T-SQL, query optimizer tự động quyết định cách thực thi truy vấn dựa trên thống kê, nhưng một số clause có thể ảnh hưởng mạnh mẽ đến việc chọn index. Lưu ý: Không có lệnh trực tiếp "force" index mà không dùng hint (như WITH (INDEX(...))), nhưng trong ngữ cảnh cơ bản (fundamentals), câu hỏi ám chỉ clause giúp optimizer chọn index seek hiệu quả. Kiến thức này áp dụng đến phiên bản SQL Server 2022 và Azure SQL (cập nhật 2026 không thay đổi cơ bản). (Nguồn: Microsoft Docs - Query Processing Architecture, Azure SQL Database Performance).

✅ Đáp án đúng: WHERE
Lý do lựa chọn: Clause WHERE được sử dụng để lọc dữ liệu dựa trên điều kiện cụ thể trên cột có index, giúp query optimizer tự động chọn index seek hoặc index scan thay vì full table scan. Điều này "hướng dẫn" gián tiếp DBMS sử dụng index hiệu quả, đặc biệt khi điều kiện WHERE khớp với cột indexed (ví dụ: WHERE CustomerID = 123). Đây là cách phổ biến nhất trong T-SQL fundamentals để tránh table scan, được nhấn mạnh trong Azure Data Fundamentals (DP-900). (Nguồn: Microsoft Learn - Indexes).

🛠️ Giải thích tất cả các phương án (đúng/sai)

  • SELECT ❌ Sai:
    SELECT là lệnh chính để truy vấn dữ liệu, chỉ định cột cần trả về. Nó không trực tiếp hướng dẫn sử dụng index hay tránh full table scan; optimizer quyết định dựa trên toàn bộ truy vấn. SELECT không ảnh hưởng cụ thể đến index như WHERE.

  • WHERE ✅ Đúng:
    Như đã giải thích ở trên, WHERE cung cấp điều kiện lọc giúp optimizer ưu tiên index trên cột liên quan, giảm full table scan đáng kể. Ví dụ: SELECT * FROM Orders WHERE OrderDate > '2023-01-01'; sẽ dùng index trên OrderDate nếu có.

  • JOIN ❌ Sai:
    JOIN dùng để kết hợp dữ liệu từ nhiều bảng, và optimizer có thể dùng index trên cột join nếu có (như clustered index), nhưng nó không phải là clause chính để "chỉ thị" tránh full table scan. JOIN thường dẫn đến nested loop hoặc hash join, không đảm bảo dùng index thay table scan.

📚 Tài liệu tham khảo bổ sung: