Configure the Confidentiality Rule
To configure the confidentiality rule, you need to use the method
command in SuperADMIN:
Create a new method, give it a name and ID, and specify whether the method is mandatory or a table method (typically, you will want to configure the method as mandatory, so that it is always applied; table methods are only for use in SuperCROSS):
CODEmethod addmethod <method_id> <type> <display_name>
Add the "confidentialityrule" module to your method:
CODEmethod <method_id> adddcplugin <dc_plugin_id> confidentialityrule
The module must be located in the same directory as the SuperSERVER executable (typically C:\Program Files\STR\SuperSERVER SA if you installed to the default location).
Set the properties of your method. This specifies which rules you want to use, and the parameters for those rules:
CODEmethod <method_id> <dc_plugin_id> addproperty <property_name> <property_value>
Depending on the rule, you may need to set multiple properties.
Apply your method to the dataset:
CODEcat <dataset_id> addmethod <method_id>
If you want to see the effect of the various rules, see this page for an example of macro that creates methods for each of the available rules and then creates multiple copies of the sample retail banking dataset, each with a different rule applied to it. This can be used to demonstrate how each rule affects the cross tabulation results.
Rounding Rules
0-3 Rounding
method addmethod "0-3" mandatory "Randomly round values between 0 and 3"
method "0-3" adddcplugin confrule confidentialityrule
method "0-3" confrule addproperty RULESET "0-3 Rounding"
cat bank addmethod "0-3"
These instructions:
- Create a mandatory method with the ID of 0-3 and the display name Randomly round values between 0 and 3.
- In this case, both the ID and the display name are enclosed in quotes because they contain spaces.
- The ID is what you will use in subsequent statements to refer to this method. It can be any value you like as long as it is a unique ID.
- The display name is optional (you can omit it and the ID will be used instead).
- Add the confidentiality module to the method.
- When adding the module, you need to set a plugin ID. In this case it is confrule but you can use any value you like, as long as it is unique within the scope of the method.
- Add the 0-3 rounding rule to the method.
- Apply the method to the sample retail banking dataset.
Random Rounding
method addmethod RandomRounding mandatory "Random Rounding"
method RandomRounding adddcplugin confrule confidentialityrule
method RandomRounding confrule addproperty RULESET "Random Rounding"
cat bank addmethod RandomRounding
These instructions:
- Create a mandatory method with the unique ID RandomRounding and the display name Random Rounding.
- Add the confidentiality module to the method.
- Add the Random Rounding rule to the method.
- Apply the method to the sample retail banking dataset.
1-4 Rounding
method addmethod "1-4" mandatory "Randomly round cell values between 1 and 4"
method "1-4" adddcplugin confrule confidentialityrule
method "1-4" confrule addproperty RULESET "1-4 Rounding"
cat bank addmethod "1-4"
These instructions:
- Create a mandatory method with the unique ID 1-4 and the display name Randomly round cell values between 1 and 4.
- Add the confidentiality module to the method.
- Add the 1-4 Rounding rule to the method.
- Apply the method to the sample retail banking dataset.
Graduated Rounding
method addmethod GraduatedRounding mandatory "Graduated Rounding"
method GraduatedRounding adddcplugin confrule confidentialityrule
method GraduatedRounding confrule addproperty RULESET "Graduated Rounding"
cat bank addmethod GraduatedRounding
These instructions:
- Create a mandatory method with the unique ID GraduatedRounding and the display name Graduated Rounding.
- Add the confidentiality module to the method.
- Add the Graduated Rounding rule to the method.
- Apply the method to the sample retail banking dataset.
Cell Suppression Rules
Top Contributors
method addmethod "1,90" mandatory "Conceal if one contributor is 90% or more"
method "1,90" adddcplugin confrule confidentialityrule
method "1,90" confrule addproperty RULESET "NK(1,90)"
method "1,90" confrule addproperty TOPN "1"
cat bank addmethod "1,90"
These instructions:
- Create a mandatory method with the unique ID 1,90 and the display name Conceal if one contributor is 90% or more.
- Add the confidentiality module to the method.
Add cell suppression rules, such that a cell will be suppressed if 1 contributing value is 90% or more of the total cell value.
By default, NULL values do not count as contributors to the cell.
- Apply the method to the sample retail banking dataset.
Frequency
method addmethod F50 mandatory "Conceal cells with 50 contributors or fewer"
method F50 adddcplugin confrule confidentialityrule
method F50 confrule addproperty FREQ "true"
method F50 confrule addproperty RULESET "FREQ(50)"
cat bank addmethod F50
These instructions:
- Create a mandatory method with the unique ID F50 and the display name Conceal cells with 50 contributors or fewer.
- Add the confidentiality module to the method.
Add cell suppression rules, such that a cell will be suppressed if the number of contributors is 50 or fewer.
By default, NULL values do not count towards the number of contributors to the cell.
- Apply the method to the sample retail banking dataset.
By default, the frequency rule will use the value of the FREQ
cube (a count of the number of contributors) to work out whether to conceal the results. However, it also has an optional second parameter where you can specify a different cube to use when determining whether to conceal the results. For example, in some situations you might choose to conceal based on the RECORD_COUNT
cube (which calculates the number of records contributing to a result, including any records with null values). See Record Count for an example of this configuration.
Threshold
method addmethod T-1000 mandatory "Conceal cell if value is less than or equal to 1000"
method T-1000 adddcplugin confrule confidentialityrule
method T-1000 confrule addproperty RULESET "THRESHOLD(1000)"
cat bank addmethod T-1000
These instructions:
- Create a mandatory method with the unique ID T-1000 and the display name Conceal cell if value is less than or equal to 1000.
- Add the confidentiality module to the method.
Add cell suppression rules, such that a cell will be suppressed if the cell value is less than or equal to 1000.
Apply the method to the sample retail banking dataset.
Configure the Cell Suppression String
Any suppressed cells will be replaced with a confidentiality string. By default this is ..C, but you can change this to a different string as follows:
- In SuperCROSS, select Edit > Options and then the Data tab. Change the value of the Confidentiality String and click OK.
- In SuperWEB2, you need to edit the CubeCatalog.xml configuration file. See Configure Settings for Concealment and Cells with No Contributors for more information.
Replace the Cell Value with 0
As an alternative, you can replace the cell value with 0. This ensures that users cannot tell the difference between a true 0 and a suppressed cell.
To make this change, set the following property in SuperADMIN:
method <method_id> <dc_plugin_id> addproperty ZeroSuppressCells TRUE
This property can be used with any of the cell suppression rules. For example, if you configured the threshold rule using the example above, you would use the following command:
method T-1000 confrule addproperty ZeroSuppressCells TRUE