es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SQL Server :: MASCARADO CON (FUNCTION = ‘default()’); no funciona

Mi objetivo es enmascarar columnas en SQL Server 2019. Estoy siguiendo una guía muy sencilla (https://solutioncenter.apexsql.com/how-to-mask-sql-server-data-using-dynamic-data-masking/). Ejecuto esta consulta en AdventureWorks2014 y creo una copia de Person.Person:

SELECT [BusinessEntityID], [PersonType], [NameStyle], [Title], [FirstName], [MiddleName], [LastName], [Suffix], [EmailPromotion], [AdditionalContactInfo], [Demographics], [rowguid], [ModifiedDate] INTO [Person].[PersonMasked] FROM [AdventureWorks2014].[Person].[PersonMasked] ORDER BY BusinessEntityID

Ahora voy a enmascarar la columna FirstName tal como se describe en la guía:

ALTER TABLE [AdventureWorks2014].[Person].[PersonMasked] ALTER COLUMN FirstName NVARCHAR(10) MASKED WITH (FUNCTION = ‘default()’);

Pero recibo el siguiente error:

Msg 8152, Level 16, State 30, Line 1
String or binary data would be truncated.
The statement has been terminated.

Completion time: 2021-11-23T15:32:43.0426983+01:00

¿Dónde me estoy equivocando?

¿Dónde puedo encontrar la función “FUNCTION=’default()'” en SSMS?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el error que recibiste se debe a que intentaste truncar datos en la columna FirstName a 10 caracteres cuando hay valores más largos presentes. Es posible que necesites aumentar la longitud de la columna FirstName en tu tabla PersonMasked o modificar tu función de enmascaramiento para acomodar valores más largos.

    En cuanto a la función FUNCTION = 'default()', este es un parámetro utilizado en la cláusula MASKED WITH para especificar la función de enmascaramiento que se aplicará a la columna. default() es una de las funciones de enmascaramiento integradas en SQL Server que reemplaza el valor original con un valor predeterminado, como ‘XXXXX’ para cadenas o ’01/01/2000′ para fechas. Puedes encontrar más información sobre las funciones de enmascaramiento y su uso en la documentación de Microsoft.

Comments are closed.