Identifying circular relationships between groups in the SAS® Metadata Server


Overview

This SAS KB article provides a set of tools that you can use to identify and analyze metadata groups that are in a circular relationship. Circular relationships can negatively impact performance, prevent permissions from being accurately evaluated, and even stop some software functionality from working. For example, when circular groups are defined, you might not be able to save SAS® BI Dashboard content.

Using the Tools

Contact SAS Technical Support to obtain the circular relationship tools. The main tool, GROUPLINE.sas, uses the %MDUEXTR macro to extract group metadata from the SAS Metadata Server and create a table named GROUPLINE. The GROUPLINE table contains group lineage information and identifies groups with circular relationships.

Note: The %MDUEXTR macro is available when you license SAS software that includes the SAS Metadata Server.

Before running the code:

SAS Technical Support will give you the SAS Metadata Circular Relationship Tool on Windows: SAS381-2017_SAS_Code.EXE

  1. After downloading, run the file.
  2. Review and accept the license terms and conditions.
  3. When prompted, provide a path to store the contents.
  4. When extraction is complete, you have a ZIP file named SAS381-2017_SAS_Code.zip. The file contains the three SAS programs discussed in this note.

SAS Technical Support will also give you the SASTSST_UNIX_installation.sh utility on UNIX: SASTSST_UNIX_installation.sh

  1. After downloading, execute the SASTSST_UNIX_installation.sh utility.
  2. Review and accept the license terms and conditions.
  3. When prompted, provide an absolute path to a deployment directory (such as /usr/local/etc/SAS/) to define the location for your SAS Technical Support Sample Tools.
  4. Select the Identifying circular relationships between groups in the SAS Metadata Server option. After the utility is deployed, you see the following content in your deployment directory:
FileNotes
SAS381-2017_SAS_Code.zipZIP file that contains the three SAS programs discussed above.
README.SASTSST_UNIX.txtComplete listing of SAS Technical Support sample tools and their associated documentation.

 

The other two programs, AppendixA_ALLGROUP.sas and AppendixB_GROUPLINE_Cube.sas, are explained in the associated SAS® Global Forum paper "Circular Metadata Group Membership Can Make You Dizzy!"

You can run the extracted programs in Base SAS® or in SAS® Enterprise Guide®.

Sample Results from the GROUPLINE Table

The following table shows a subset of the GROUPLINE table generated from the GROUPLINE.sas code. The data has been filtered to show only circular group relationships (the value of the recursive column is 1). The column groupline identifies the hierarchy of group memberships. In the first row (observation 4), the circular relationship is GreenOrangePurple, and Green. Specifically, Orange is a member of GreenPurple is a member of Orange, and Green is a member of PurpleGreen is both a parent and a child in the relationship.  Blue is the parent of Green, but it is not part of the circular relationship identified in observation 4. Blue is in a circular relationship with Yellow, as seen in observation 6.

After Circular Relationships Are Identified

A metadata security plan is site specific. So, you must use the information in the GROUPLINE table to analyze your own plan and remove the circular relationships.

After each change to group memberships, run GROUPLINE.sas again until no circular relationships remain.

Tip: The associated SAS Global Forum paper "Circular Metadata Group Membership Can Make You Dizzy!" also explains how to visualize the GROUPLINE table in a network diagram in SAS® Visual Analytics Explorer, how to create a table that identifies parent/child groups, and how to use the GROUPLINE table in a SAS® OLAP cube.

Additional Resources