Anyone with the unmask privilege or DB_OWNER will be able to view the data. As many development and testing environments grant higher privileges to the users and in SQL Server, it’s not rare for a developer to be the DB_OWNER, (I used to come across this all the time when recoveries were performed by the wrong OS user) this leaves this data still quite vulnerable. I do like that if you were to take a backup and recover it with masking, the obfuscated data is what is recovered physically. I’m more concerned about those odd environments where compliance hasn’t been put in place on owners of the database that would still view the originally masked data, but unmasked.
Performance isn’t impacted, (i.e. no referential integrity concerns or execution plans) as the optimizer performs all steps against the real data, which leads me to wonder what happens with some of the newer monitoring tools that state they can display SQL and bind variable data without accessing the database directly. Would they “sniff” the masked data or unmasked? Would it matter who the OS User or roles in the database?
The important thing here is that DDM isn’t really a security product. It’s a something-or-another product that might be useful to stop shoulder surfing but pretty much nothing else.