MSCEWI4017

Masking not supported

Severity

Low

Description

This EWI is added when SnowConvert finds a masked column inside a CREATE TABLE statement. This functionality doesn't work by adding the option in the column declaration. Manual efford is needed in order to have the same behavour as SQL Server.

Code Example

Input Code:

CREATE TABLE TABLE1
( 
  [COL1] nvarchar MASKED WITH (FUNCTION = 'default()') NULL,
  [COL2] varchar(100) MASKED WITH (FUNCTION = 'partial(1, "xxxxx", 1)') NULL,
  [COL3] varchar(100) MASKED WITH (FUNCTION = 'email()') NOT NULL,
  [COL4] smallint MASKED WITH (FUNCTION = 'random(1, 100)') NULL
);

Output Code:

CREATE OR REPLACE TABLE PUBLIC.TABLE1
(
COL1 VARCHAR
-- ** MSC-WARNING - MSCEWI4016 - COLUMN MASKING NOT SUPPORTED IN CREATE TABLE **
--             MASKED WITH (FUNCTION = 'default()')
                                                  NULL,
COL2 VARCHAR(100)
-- ** MSC-WARNING - MSCEWI4016 - COLUMN MASKING NOT SUPPORTED IN CREATE TABLE **
--                  MASKED WITH (FUNCTION = 'partial(1, "xxxxx", 1)')
                                                                    NULL,
COL3 VARCHAR(100)
-- ** MSC-WARNING - MSCEWI4016 - COLUMN MASKING NOT SUPPORTED IN CREATE TABLE **
--                  MASKED WITH (FUNCTION = 'email()')
                                                     NOT NULL,
COL4 SMALLINT
-- ** MSC-WARNING - MSCEWI4016 - COLUMN MASKING NOT SUPPORTED IN CREATE TABLE **
--              MASKED WITH (FUNCTION = 'random(1, 100)')
                                                        NULL
);

Recommendations

SnowConvert is not generating MASKING POLICIES in the current version, so they have to be created manually. For example:

The first step is to create a masking policy administrator role.

The second one is to grant the necessary privileges to the created role.

The next step is to create the masking policy functions.

For sample purposes, we are taking some examples of masking functions in SQL Server, and manually translating it into its equivalent in Snowflake.

The final step is to add the masking policy to the column that originally had the masking option in SQL Server.

If you need more support, you can email us at [email protected]

Last updated