MyLinks is an important MOSS feature that is well used in many organizations. Unfortuantely many administrators incorrectly believe that the data is stored in the MySite collections when its actually stored in the Shared Service Provider as part of the user’s shared profile. That is what allows the data to be shared between the different site collections and web apps.
I have on occassion, more than I would care to admit, had to recreate the Shared Service Provider to repair search related issues. Creating a new SSP means that this profile data will be wiped out. In this case I think its a good proactive step to pull a list of the links that are being used. Reviewing the list not only gives the administrator a good idea of how the feature is being used, but it would then be possible to supply the users with a list of the links that need to be setup when the maintenance is complete.
The following script can be used to gather the data. The UserLinks and UserProfile_Full tables are in the Shared Service Provider database.
Select Prof.NTName, Prof.PreferredName, Prof.Email, Link.GroupTitle, Link.Title, Link.URL
From UserLinks Link inner join UserProfile_Full Prof on UL.recordId = Prof.recordID
order by Prof.ntname
Generally speaking it is a bad idea to accomplish something by directly accessing the database. Any changes should definitely be made by the API or through the Web Services supplied. There are a few special cases though where the API doesn’t really help you. One such exception is reviewing this MyLinks data.