diff --git a/CHANGES.txt b/CHANGES.txt index be048ff248..062fa500b6 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 5.0 + * CEP-20: Dynamic Data Masking (CASSANDRA-17940) * Add system_views.snapshots virtual table (CASSANDRA-18102) * Update OpenHFT dependencies (chronicle-queue, chronicle-core, chronicle-bytes, chronicle-wire, chronicle-threads) (CASSANDRA-18049) * Remove org.apache.cassandra.hadoop code (CASSANDRA-18323) diff --git a/NEWS.txt b/NEWS.txt index 48789e4bbe..3d7a25eea9 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -132,6 +132,14 @@ New features - Added local read/write ratio to tablestats. - Added system_views.max_sstable_size and system_views.max_sstable_duration tables. - Added virtual table system_views.snapshots to see all snapshots from CQL shell. + - Added support for attaching CQL dynamic data masking functions to table columns on the schema. These masking + functions can be attached to or dettached from columns with CREATE/ALTER TABLE statements. The functions obscure + the masked data during queries, but they don't change the stored data. + - Added new UNMASK permission. It allows to see the clear data of columns with an attached mask. Superusers have it + by default, whereas regular users don't have it by default. + - Added new SELECT_MASKED permission. It allows to run SELECT queries selecting the clear values of masked columns. + Superusers have it by default, whereas regular users don't have it by default. + - Added support for using UDFs as masking functions attached to table columns on the schema. Upgrading --------- diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index 746fd5743e..ee616e1674 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -1660,6 +1660,14 @@ report_unconfirmed_repaired_data_mismatches: false # warming of auth caches prior to node completing startup. See CASSANDRA-16958 # auth_cache_warming_enabled: false +# If enabled, dynamic data masking allows to attach CQL masking functions to the columns of a table. +# Users without the UNMASK permission will see an obscured version of the values of the columns with an attached mask. +# If dynamic data masking is disabled it won't be allowed to create new column masks, although it will still be possible +# to drop any previously existing masks. Also, any existing mask will be ignored at query time, so all users will see +# the clear values of the masked columns. +# Defaults to false to disable dynamic data masking. +# dynamic_data_masking_enabled: false + ######################### # EXPERIMENTAL FEATURES # ######################### diff --git a/doc/cql3/CQL.textile b/doc/cql3/CQL.textile index 0147caa322..f5bb83807c 100644 --- a/doc/cql3/CQL.textile +++ b/doc/cql3/CQL.textile @@ -252,9 +252,11 @@ bc(syntax).. '(' ( ',' )* ')' ( WITH