You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/relational-databases/security/dynamic-data-masking.md
+13-12Lines changed: 13 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,12 @@
1
1
---
2
-
title: "Dynamic Data Masking | Microsoft Docs"
2
+
title: "Dynamic Data Masking"
3
3
description: Learn about dynamic data masking, which limits sensitive data exposure by masking it to non-privileged users. It can greatly simplify security in SQL Server.
Dynamic data masking (DDM) limits sensitive data exposure by masking it to non-privileged users. It can be used to greatly simplify the design and coding of security in your application.
21
20
22
-
Dynamic data masking helps prevent unauthorized access to sensitive data by enabling customers to specify how much sensitive data to reveal with minimal impact on the application layer. DDM can be configured on designated database fields to hide sensitive data in the result sets of queries. With DDM the data in the database is not changed. Dynamic data masking is easy to use with existing applications, since masking rules are applied in the query results. Many applications can mask sensitive data without modifying existing queries.
21
+
Dynamic data masking helps prevent unauthorized access to sensitive data by enabling customers to specify how much sensitive data to reveal with minimal impact on the application layer. DDM can be configured on designated database fields to hide sensitive data in the result sets of queries. With DDM the data in the database is not changed. DDM is easy to use with existing applications, since masking rules are applied in the query results. Many applications can mask sensitive data without modifying existing queries.
23
22
24
23
* A central data masking policy acts directly on sensitive fields in the database.
25
24
* Designate privileged users or roles that do have access to the sensitive data.
@@ -80,6 +79,8 @@ WHERE is_masked = 1;
80
79
- A mask cannot be configured on a computed column, but if the computed column depends on a column with a MASK, then the computed column will return masked data.
81
80
82
81
- A column with data masking cannot be a key for a FULLTEXT index.
82
+
83
+
- A column in a PolyBase [external table](../../t-sql/statements/create-external-table-transact-sql.md).
83
84
84
85
For users without the **UNMASK** permission, the deprecated **READTEXT**, **UPDATETEXT**, and **WRITETEXT** statements do not function properly on a column configured for Dynamic Data Masking.
85
86
@@ -116,18 +117,18 @@ It is important to properly manage the permissions on the database, and to alway
116
117
```sql
117
118
118
119
-- schema to contain user tables
119
-
CREATESCHEMAData
120
+
CREATESCHEMAData;
120
121
GO
121
122
122
123
-- table with masked columns
123
124
CREATETABLEData.Membership(
124
-
MemberIDint IDENTITY(1,1) NOT NULLPRIMARY KEY CLUSTERED,
125
-
FirstNamevarchar(100) MASKED WITH (FUNCTION ='partial(1, "xxxxx", 1)') NULL,
126
-
LastNamevarchar(100) NOT NULL,
127
-
Phonevarchar(12) MASKED WITH (FUNCTION ='default()') NULL,
128
-
Emailvarchar(100) MASKED WITH (FUNCTION ='email()') NOT NULL,
129
-
DiscountCodesmallint MASKED WITH (FUNCTION ='random(1, 100)') NULL
130
-
)
125
+
MemberIDint IDENTITY(1,1) NOT NULLPRIMARY KEY CLUSTERED,
126
+
FirstNamevarchar(100) MASKED WITH (FUNCTION ='partial(1, "xxxxx", 1)') NULL,
127
+
LastNamevarchar(100) NOT NULL,
128
+
Phonevarchar(12) MASKED WITH (FUNCTION ='default()') NULL,
129
+
Emailvarchar(100) MASKED WITH (FUNCTION ='email()') NOT NULL,
130
+
DiscountCodesmallint MASKED WITH (FUNCTION ='random(1, 100)') NULL
Copy file name to clipboardExpand all lines: docs/t-sql/statements/create-external-table-transact-sql.md
+13-9Lines changed: 13 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -100,7 +100,7 @@ The one to three-part name of the table to create. For an external table, SQL st
100
100
> For best performance, if the external data source driver supports a three-part name, it is strongly recommended to provide the three-part name.
101
101
102
102
\<column_definition> [ ,...*n*]
103
-
CREATE EXTERNAL TABLE supports the ability to configure column name, data type, nullability and collation. You can't use the DEFAULT CONSTRAINT on external tables.
103
+
CREATE EXTERNAL TABLE supports the ability to configure column name, data type, nullability, and collation. You can't use the DEFAULT CONSTRAINT on external tables.
104
104
105
105
The column definitions, including the data types and number of columns, must match the data in the external files. If there's a mismatch, the file rows will be rejected when querying the actual data.
106
106
@@ -220,6 +220,7 @@ Constructs and operations not supported:
220
220
221
221
- The DEFAULT constraint on external table columns
222
222
- Data Manipulation Language (DML) operations of delete, insert, and update
223
+
-[Dynamic Data Masking](../../relational-databases/security/dynamic-data-masking.md) on external table columns
223
224
224
225
### Query limitations
225
226
@@ -240,7 +241,7 @@ The following data types cannot be used in PolyBase external tables:
240
241
-`text`
241
242
-`nText`
242
243
-`xml`
243
-
- Any userdefined type
244
+
- Any user-defined type
244
245
245
246
## Locking
246
247
@@ -657,7 +658,7 @@ The one to three-part name of the table to create. For an external table, SQL st
657
658
> For best performance, if the external data source driver supports a three-part name, it is strongly recommended to provide the three-part name.
658
659
659
660
\<column_definition> [ ,...*n*]
660
-
CREATE EXTERNAL TABLE supports the ability to configure column name, data type, nullability and collation. You can't use the DEFAULT CONSTRAINT on external tables.
661
+
CREATE EXTERNAL TABLE supports the ability to configure column name, data type, nullability, and collation. You can't use the DEFAULT CONSTRAINT on external tables.
661
662
662
663
> [!NOTE]
663
664
> `Text`, `nText` and `XML` are not supported data types for columns in external tables for Azure SQL Database.
@@ -712,8 +713,9 @@ Constructs and operations not supported:
712
713
713
714
- The DEFAULT constraint on external table columns
714
715
- Data Manipulation Language (DML) operations of delete, insert, and update
716
+
-[Dynamic Data Masking](../../relational-databases/security/dynamic-data-masking.md) on external table columns
715
717
716
-
Only literal predicates defined in a query can be pushed down to the external data source. This is unlike linked servers and accessing where predicates determined during query execution can be used, i.e. when used in conjunction with a nested loop in a query plan. This will often lead to the whole external table being copied locally and then joined to.
718
+
Only literal predicates defined in a query can be pushed down to the external data source. This is unlike linked servers and accessing where predicates determined during query execution can be used, that is, when used in conjunction with a nested loop in a query plan. This will often lead to the whole external table being copied locally and then joined to.
717
719
718
720
```sql
719
721
\\ Assuming External.Orders is an external table and Customer is a local table.
@@ -742,7 +744,7 @@ The following data types cannot be used in PolyBase external tables:
742
744
-`text`
743
745
-`nText`
744
746
-`xml`
745
-
- Any userdefined type
747
+
- Any user-defined type
746
748
747
749
## Locking
748
750
@@ -849,7 +851,7 @@ The one to three-part name of the table to create. For an external table, only t
849
851
> For best performance, if the external data source driver supports a three-part name, it is strongly recommended to provide the three-part name.
850
852
851
853
\<column_definition> [ ,...*n* ]
852
-
CREATE EXTERNAL TABLE supports the ability to configure column name, data type, nullability and collation. You can't use the DEFAULT CONSTRAINT on external tables.
854
+
CREATE EXTERNAL TABLE supports the ability to configure column name, data type, nullability,and collation. You can't use the DEFAULT CONSTRAINT on external tables.
853
855
854
856
> [!NOTE]
855
857
> `Text`, `nText` and `XML` are not supported data types for columns in external tables for Azure SQL Warehouse.
@@ -968,6 +970,7 @@ Constructs and operations not supported:
968
970
969
971
- The DEFAULT constrainton external table columns
970
972
- Data Manipulation Language (DML) operations of delete, insert, andupdate
973
+
- [Dynamic Data Masking](../../relational-databases/security/dynamic-data-masking.md) on external table columns
971
974
972
975
### Query limitations
973
976
@@ -988,7 +991,7 @@ The following data types cannot be used in PolyBase external tables:
988
991
- `text`
989
992
- `nText`
990
993
- `xml`
991
-
- Any userdefined type
994
+
- Any user-defined type
992
995
993
996
## Locking
994
997
@@ -1114,7 +1117,7 @@ The one to three-part name of the table to create. For an external table, Analyt
1114
1117
> For best performance, if the external data source driver supports a three-part name, it is strongly recommended to provide the three-part name.
1115
1118
1116
1119
\<column_definition> [ ,...*n* ]
1117
-
CREATE EXTERNAL TABLE supports the ability to configure column name, data type, nullability and collation. You can't use the DEFAULT CONSTRAINTon external tables.
1120
+
CREATE EXTERNAL TABLE supports the ability to configure column name, data type, nullability, and collation. You can't use the DEFAULT CONSTRAINTon external tables.
1118
1121
1119
1122
The column definitions, including the data types andnumber of columns, must match the data in the external files. If there's a mismatch, the file rows will be rejected when querying the actual data.
1120
1123
@@ -1225,6 +1228,7 @@ Constructs and operations not supported:
1225
1228
1226
1229
- The DEFAULT constrainton external table columns
1227
1230
- Data Manipulation Language (DML) operations of delete, insert, andupdate
1231
+
- [Dynamic Data Masking](../../relational-databases/security/dynamic-data-masking.md) on external table columns
1228
1232
1229
1233
### Query limitations
1230
1234
@@ -1247,7 +1251,7 @@ The following data types cannot be used in PolyBase external tables:
0 commit comments