EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics

KB484922: Observing differences in Datamart table name and Metric Column Alias after upgrading to MicroStrategy 2021 Update 1


Alberto Abrisqueta Manzanaro

Product Manager • Strategy


This article explains why you may observe certain differences in Datamart table names and metric column alias after upgrading to MicroStrategy 2021.

Description


After upgrading to Strategy 2021, you may notice differences in your datamart table names and metric column alias in some corner cases. This behavior is expected, as in this release Strategy engine addresses potential SQL injection threats via datamart table names and metric alias by stripping off invalid characters. The invalid characters are dependent on each gateway and the default ones are:
 
"[]~`!@#$%^&*()\?|/ ;{} +=:'"<>,."
 
This should have a very limited impact on product upgrades and will only affect certain corner cases where such invalid characters are used within metric alias and datamart names.
 

Example

  • Create a sample datamart, and specify the table name to include an invalid character such as TABLE#NAME
ka0PW0000000u2DYAQ_0EM4W000001LGEs.jpeg
  • For SQL server, the table name will be created by replacing the invalid character with an underscore: TABLE_NAME
ka0PW0000000u2DYAQ_0EM4W000001LGEx.jpeg

The following is a comparison of the SQL difference observed between Strategy 2021 Update 1 and previous releases:
 

  • Strategy 2021 Update 1
    
    Pass0 -               
    drop table TABLE_NAME
    
    Pass1 -         
    select [a12].[QUARTER_ID]  [QUARTER_ID],
             [a12].[QUARTER_DESC]  [QUARTER_DESC0],
             [a11].[ITEM_ID]  [ITEM_ID],
             [a11].[ITEM_NAME]  [ITEM_NAME0]
    into TABLE_NAME
    from [lu_item]  [a11]
             cross join  [lu_quarter] [a12]

  • Previous Releases:
    
    Pass0 -              
    drop table TABLE#NAME
    
    Pass1 -              
    select [a12].[QUARTER_ID]  [QUARTER_ID],
             [a12].[QUARTER_DESC]  [QUARTER_DESC0],
             [a11].[ITEM_ID]  [ITEM_ID],
             [a11].[ITEM_NAME]  [ITEM_NAME0]
    into TABLE#NAME
    from [lu_item]  [a11]
             cross join  [lu_quarter] [a12]
    

The SQL changes will be detected by the Upgrade Impact log and it will let you know what invalid characters have been replaced and what the new name of the table is:


[Engine][UpgradeImpact][UID:54F3D26011D2896560009A8E67019608][SID:300B5641272CEFC1910F01C59C59465E][OID:905EB19C470C66FE5693ABA761202A2C] [ONAME:Pound Sign][TID:905EB19C470C66FE5693ABA761202A2C][TNAME:Pound Sign][REFID:F12842][STRING CHANGED TO:TABLE_NAME]

Solution


This is an expected change, and no further action is required.


Comment

0 comments

Details

Knowledge Article

Published:

March 5, 2021

Last Updated:

February 26, 2024