TABLE OF CONTENTS
- •Is your Azure SQL environment audit-ready?
- •Azure SQL Checklist for KVKK at a Glance
- •1. Where Does the Data Live?
- •2. Encryption
- •Data at rest: TDE
- •Sensitive columns: Always Encrypted
- •3. Authentication and Network Access
- •4. Masking
- •5. Audit Logging
- •Azure SQL Database or Managed Instance?
- •KVKK Technical Measures Checklist
- •Azure SQL with Aryasoft
- •Frequently Asked Questions
- •Sources
- •Get your Azure SQL environment audit-ready
Complying with KVKK, Türkiye’s Personal Data Protection Law, on Azure SQL means answering two separate questions: where does the data live (cross-border transfer), and how is it protected (technical and administrative measures)? Azure SQL offers strong built-in features for encryption, access control, masking and audit logging. But turning those features on and configuring them correctly, deciding which region holds the data and meeting the conditions for transfers abroad are the organization’s responsibility.
This guide is for IT managers and data protection officers at organizations that run, or are considering moving, databases containing personal data on Azure SQL Database or Azure SQL Managed Instance and that fall under KVKK. Much of it also applies to GDPR. It’s a technical checklist, not legal advice; make the assessment for your organization together with your legal counsel.
Is your Azure SQL environment audit-ready?
Aryasoft reviews your Azure SQL environments for encryption, access control, masking and audit logging and applies a technical configuration that fits your compliance checklist.
Azure SQL Checklist for KVKK at a Glance
| Topic | Azure SQL feature | Default state |
|---|---|---|
| Data location | Region choice, backup storage redundancy (LRS, ZRS, GRS) | Your choice |
| Encryption at rest | Transparent Data Encryption (TDE); optional customer-managed key | On for new databases |
| Encryption in transit | TLS; minimum TLS version setting | On |
| Sensitive column encryption | Always Encrypted | Off |
| Authentication | Microsoft Entra ID authentication, multi-factor authentication | SQL authentication also on |
| Network access | Private Endpoint, firewall rules | Your configuration |
| Masking | Dynamic Data Masking | Off |
| Audit logging | Azure SQL Auditing (Storage, Log Analytics, Event Hubs) | Off |
| Threat detection | Microsoft Defender for SQL | Enabled separately |
1. Where Does the Data Live?
Article 9 of KVKK sets conditions for transferring personal data abroad. The article was amended by Law No. 7499, and the new rules took effect on 1 June 2024. Under them, a transfer can rely on an adequacy decision, one of the appropriate safeguards (for example the standard contracts published by the Board) or one of the exceptional cases. When standard contracts are used, they must be notified to the Authority within five business days of signing.
On the Azure SQL side, these decisions determine where the data lives:
| Decision | Effect |
|---|---|
| Region | The Azure region the database runs in is the data’s primary physical location. |
| Backup storage redundancy | Geo-redundant (GRS) backups are copied to another, paired region. Local (LRS) or zone-redundant (ZRS) options keep backups in the same region. |
| Geo-replication and failover groups | The secondary replica holds a full copy of the data in another region you choose. |
| Audit and log targets | Audit logs can contain personal data too; assess the region of the target storage account separately. |
| Support access | The terms for data access during support cases are defined in the provider’s contracts. |
Warning
Geo-redundant backups and geo-replication to another region are valuable for disaster recovery, but they can create additional copies of the data in another country. Before you turn these settings on, include the region where the copies will live in your KVKK assessment.
Regulated sectors such as banking have extra rules: the Turkish regulation on banks’ information systems and electronic banking services requires primary and secondary systems to be located in Türkiye. In these sectors, cloud databases in regions abroad aren’t suitable for primary and secondary systems.
2. Encryption
Data at rest: TDE
In Azure SQL Database, TDE is on by default for newly created databases, with keys managed by Microsoft. If the keys must be under the organization’s control, you can use a customer-managed key (BYOK) kept in Azure Key Vault. You can check the encryption state of your existing databases like this:
SELECT d.name, d.is_encrypted, k.encryption_state_desc, k.encryptor_type
FROM sys.databases AS d
LEFT JOIN sys.dm_database_encryption_keys AS k ON k.database_id = d.database_id;
Sensitive columns: Always Encrypted
TDE protects the files on disk; an authorized user who connects to the database sees the data in plain text. Always Encrypted encrypts specific columns on the client side, and the keys never reach the database engine. That way even database administrators and the cloud provider can’t see the content of encrypted columns. The price of this strong protection is that the query operations you can run on encrypted columns are limited.
3. Authentication and Network Access
- Microsoft Entra ID authentication: ties users to central identity management and lets you enforce multi-factor authentication and conditional access policies. Where possible, allow Entra authentication only.
- Private Endpoint: makes the database reachable on a private IP address inside your virtual network instead of a public internet endpoint.
- Firewall rules: if you use the public endpoint, allow only the IP ranges you need, and assess the scope of the “allow all Azure services” setting.
- Least privilege: define job-based roles for applications and users, and review privileged accounts regularly.
4. Masking
Dynamic Data Masking shows sensitive columns masked to users without permission. The data doesn’t change; masking is applied to the query result. In the example below, Tckn is a Turkish national ID number:
CREATE TABLE dbo.Customers (
Id int IDENTITY PRIMARY KEY,
FullName nvarchar(100),
Tckn char(11) MASKED WITH (FUNCTION = 'partial(0, "*******", 4)'),
Email nvarchar(200) MASKED WITH (FUNCTION = 'email()')
);
INSERT INTO dbo.Customers (FullName, Tckn, Email) VALUES (N'Ayşe Yılmaz', '12345678901', N'[email protected]');
CREATE USER SupportUser WITHOUT LOGIN;
GRANT SELECT ON dbo.Customers TO SupportUser;
EXECUTE AS USER = 'SupportUser';
SELECT FullName, Tckn, Email FROM dbo.Customers;
-- Ayşe Yılmaz | *******8901 | [email protected]
REVERT;
Dynamic Data Masking isn’t a security boundary but a visibility control: a user who can write queries can infer masked values through filtering. Use masking together with least privilege and audit logging. Test environments need permanent (static) masking; we cover the methods in our data masking guide.
5. Audit Logging
Azure SQL Auditing writes database events to a storage account, a Log Analytics workspace or Event Hubs. For KVKK, audit logs are the core evidence of who accessed personal data, when and with what action.
| Setting | Recommendation |
|---|---|
| Scope | Turn it on at server level; it covers every database. |
| Target | Log Analytics, or Event Hubs for SIEM integration; a storage account for long-term retention |
| Retention | In line with your organization’s retention and disposal policy |
| Access | Keep audit logs somewhere database administrators can’t change them. |
| Review | Regular reports or alerts for privileged actions and access to sensitive tables |
Note
The auditing concepts in SQL Server, and which action groups to choose, largely apply to Azure SQL as well. For a detailed guide, see our SQL Server Audit post.
Azure SQL Database or Managed Instance?
Both services support most of the security features in this post, but the network model, feature compatibility and management responsibility differ. For the choice, see our comparison of Azure SQL Database, Managed Instance and Azure VMs.
KVKK Technical Measures Checklist
| Control | Evidence |
|---|---|
| The regions of the database, backups, replicas and audit logs are documented. | Architecture document, region settings |
| If there is a transfer abroad, its legal basis is set and the required notifications are made. | Legal assessment, contract and notification records |
| TDE is on; the key management model is decided. | sys.databases query, Key Vault configuration |
| Encryption or masking is applied to sensitive columns. | Column inventory, Always Encrypted or masking definitions |
| Authentication is central and multi-factor. | Entra configuration |
| The database is closed to the public internet or open only to the IPs needed. | Private Endpoint, firewall rules |
| Audit logs are on and stored off the server in a way that can’t be altered. | Auditing settings, retention policy |
| Permissions are reviewed regularly. | Review records |
Azure SQL with Aryasoft
Aryasoft reviews your SQL Server environments on Azure SQL Database, Managed Instance and Azure VMs for encryption, access control, masking and audit logging, reports the gaps in priority order and applies the technical configuration. When you move to Azure, we build data location decisions into the architecture from day one. Details are on our Azure services page. For a real example, see our story on moving a national healthcare network to Azure.
Frequently Asked Questions
Sources
The technical details in this guide were checked against the following sources in November 2026. Regulations and cloud service features change; confirm the current state with the official sources.
- Turkish Personal Data Protection Authority (KVKK)
- KVKK: Public announcement on the standard contract notification module (in Turkish)
- Microsoft Learn: Transparent data encryption for Azure SQL
- Microsoft Learn: Always Encrypted
- Microsoft Learn: Dynamic data masking
- Microsoft Learn: Auditing for Azure SQL Database
- Microsoft Learn: Automated backups (backup storage redundancy)
- Microsoft Learn: Azure Private Link for Azure SQL Database
- Microsoft Learn: Microsoft Entra authentication for Azure SQL
Azure SQL
Get your Azure SQL environment audit-ready
Aryasoft reviews encryption, access control, masking and audit logging, and applies a technical configuration that fits your compliance checklist.