2

Jokes aside, what is an "Obfuscation key"? I'm just going off the docs.

sys.sysclsobjs Exists in every database. Contains a row for each classified entity that shares the same common properties that include the following:

...

Obfuscation key.

This seems to involve

  • Content/binn/sqllang.dll
  • Content/binn/sqlmin.dll

I would like to know what the key does and what is being obfuscated, and if that's available for the user.

7

I would guess they mean rows created for symmetric keys.

create symmetric key KeyTest with 
  algorithm = aes_128, 
  identity_value = '123456'
  encryption by password = '123456!Q';

go

-- Needs a DAC connection    
select *
from sys.sysclsobjs
where Name = 'KeyTest'

Result:

class id    name      status  type intprop  created                 modified
----- ----- --------- ------- ---- -------- ----------------------- -----------------------
56    259   KeyTest   0       A1   128      2017-12-22 08:43:33.170 2017-12-22 08:43:33.170
-4

I think this is the internal infrastructure behind "Dynamic Data Masking" which seems to be relatively new thing,

Traditionally, the logic of obfuscating sensitive data has been developed in the application layer, requiring it to be duplicated across all modules and applications accessing the data. [...] SQL Server 2016 and Azure SQL DB now offer a built-in feature that helps limit access to those particular sensitive data fields: Dynamic Data Masking (DDM).

That's the only link to the word "obfuscating" that I see though. To the user interface, this is called "Masking", and it's accessible to users with,

ALTER TABLE [SalesLT].[Customer]
ALTER COLUMN [Phone] ADD MASKED WITH (FUNCTION = 'default()')

After the column is masked, it requires 'UNMASK` privilege,

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.