Thanks for the input Vlad.
I've taken a look at QVServerObjectConnector but It doesn't seem to take everything from the Shared file.
The table Object has a field ObjectUser but that is providing the owner of the object.
There is also a table ObjectsAccessList which has a field ObjectAccessListUsername which sounds exactly like what I need but I find that this field is always NULL. It looks to me like the Server Object Connector is not fully implemented.
Using QVSharedFileViewer you can load in the whole .SHARED file and then export the entire contents as XML. This is showing that there is more in the SHARED file than QVServerObjectConnector is exposing.
In the .SHARED file I can see that an object is defined with an XML tag like this
It then has a related MetaData tag, which shows the Owner and also lists users the object is shared to with the <AccessList> tag
<MetaData Id="LB05-74" Owner="MyUserID">
<UtcModifyTime>double[41936.5976388889, 10/24/2014 2:20:36 PM]</UtcModifyTime>
Each Sheet for a user then has a tag like this:
<ObjectContent Id="Document\SH01" Owner="MyUserName">
Which shows the sheet for a user and the <ContentMember> tag lists all of the objects the user has on that sheet.
So I just need to make use of this (very large) XML that QVSharedFileViewer exports to find what I'm looking for - Server Objects that are not displayed by any user.
It's just a shame the QVServerObjectConnector is not providing all this.
I've found a way to use the powertools to export the data from the shred file into xml and use that basically as a database to see which objects are shared and whether they are then used. But it's a completely manual process.
I think I'll raise an Idea with Qlik to expand the Server Object Connector to provide more detailed information, it would be very useful.
Digging around inside the shared file is VERY revealing and I don't necessarily like all I see