One of the options in SharePoint surveys is to not display the user's name in the response. While this may appear to create an anonymous survey, it's not really the case. After your anonymous users have submitted, just change that setting to show user names and there they all are. If you want to be more subtle in viewing who said what, you can directly query your SharePoint content database:
SELECT AllUserData.*, UserInfo.tp_Title
FROM AllUserData LEFT JOIN
UserInfo ON UserInfo.tp_id = tp_author
WHERE AllUserData.tp_listid = '00000000-0000-0000-0000-000000000000'
AND UserInfo.tp_siteid = '11111111-1111-1111-1111-111111111111'
Where the 0000s and 1111s above are your actual survey list guid and site (where the survey is hosted) guid.
Yes, I know doing this is potentially wrong, especially if you've lead your respondents to believe it's anonymous. But sooner or later someone will say something really inappropriate or threatening and then you'll be asked to track them down. Just don't abuse your new powers.