OK, I’ll admit that this one threw me for a loop at first. I was in the process of upgrading the ldsbc.edu site from Joomla 2.5 to Joomla 3.x. To help with the process, I was using a tool called SP Transfer to migrate the data to a new database. The issue I was running into was that the global permissions didn’t seem to be migrating over. With the development site, I went through and manually updated the permissions of over 55 groups via the back-end user interface while having the old permissions settings open in another browser. There had to be a better way.
For the life of me I couldn’t find at first where this information was being stored in the database. After a bunch of research and poking around inside the database, I finally found the answer. It is stored in the first line of the assets table, and has an id of 1.
Here is the example of what the row will look like:
'1','0','0','279','0','root.1','Root Asset','{\"core.login.site\":{\"6\":1,\"2\":1},\"core.login.admin\":{\"6\":1},\"core.login.offline\":{\"6\":1},\"core.admin\":{\"8\":1},\"core.manage\":{\"7\":1},\"core.create\":{\"6\":1,\"3\":1},\"core.delete\":{\"6\":1},\"core.edit\":{\"6\":1,\"4\":1},\"core.edit.state\":{\"6\":1,\"5\":1},\"core.edit.own\":{\"6\":1,\"3\":1}}'
The goody is is the last column. That’s where the global permissions are stored.
'{\"core.login.site\":{\"6\":1,\"2\":1},\"core.login.admin\":{\"6\":1},\"core.login.offline\":{\"6\":1},\"core.admin\":{\"8\":1},\"core.manage\":{\"7\":1},\"core.create\":{\"6\":1,\"3\":1},\"core.delete\":{\"6\":1},\"core.edit\":{\"6\":1,\"4\":1},\"core.edit.state\":{\"6\":1,\"5\":1},\"core.edit.own\":{\"6\":1,\"3\":1}}'
After I figured this out, all I had to do was explicitly tell SP Transfer to migrate the assets table over, and I was golden. You could also copy the row over to then new database, as long as the group mapping matches up, it still will work.
I hope that this helps anybody that is trying to figure this out as I was.