I ran into a tricky issue today whilst migrating some Access Control Templates (ACTs) from an old SAS® 9.3 M0 deployment to a new SAS 9.3 M2 deployment. I’d seen it before and I initially forgot how I resolved it. It took a little while to rediscover the method that worked so I’m blogging it in the hope I won’t forget it in future. Perhaps it will help others too.
As you may know, SAS 9.3 has virtual folders that allow you to export security metadata like users, groups, roles and ACTs. It’s quite handy. We use it at Metacoda to migrate some security metadata we carry over from version to version for testing and demonstrating our Metacoda Security Plug-ins. You can find more information about migrating security metadata on the SAS web site in the Promotion Details for Specific Object Types section of the SAS 9.3 Intelligence Platform: System Administration Guide, Second Edition.
I had successfully exported a package of ACTs from my source 9.3 M0 environment, but when I tried to import them into my target 9.3 M2 environment I saw the following error message:
It was quite puzzling. It said I had to import ACTs into a specific folder, but that was the very same folder I was trying to import into. I had a feeling of deja-vu. I realized I’d seen this back when I first set up our SAS 9.3 M0 environment and was testing migration of security metadata between levels for the same SAS version.
This was how I had done the export that didn’t work. As I usually do when exporting, I just right clicked on the folder I wanted to export, in this case /System/Security/Access Control Templates.
I had already successfully used this method to migrate users, group and roles. It seemed odd that it wouldn’t work for ACTs.
The backup tapes started spinning in the back of my head. I remembered the problem had to do with the way I normally do exports, so I had to do it slightly differently, not by right clicking on the specific folder I wanted to export from. I tried exporting from higher up in the tree: /System/Security and then /System but only ticking the branch contain the ACTs. Neither of those packages would import either. Finally it dawned on me. I had to avoid exporting the folder:
The method that worked was to:
- select all of the individual ACTs in the /System/Security/Access Control Templates folder (Control-A),
- right click over the selected ACTs (not the folder), and select the Export SAS Package… menu item.
This resulted in a folder-less package which I could then correctly import into the /System/Security/Access Control Templates folder in the target environment.