I'm not sure this will work, but have you tried creating a data connection to the list that requires special access and making sure to set the data connection to not load when the form opens but instead make it a rule action to query when they click the button. SharePoint may then prompt for user credentials.
If that doesn't work, why not just give everyone access to the list but set the permissions for the individual rows in the list based on which user's data is in it. In other words, remove all permissions except for that user. Then, you could use a pin and set credentials in the UDCX file for the list to query it with the master account and set a field equal to the pin and have them lookup the row based on username and pin. We've done that before for electronic signatures where we want to load a signature image into the form based on the username and pin.
Yet another option would be to find an app that logs in the user (not sure if one exists) and create a page that has two web parts - one for InfoPath form and the other for the login. Use web part connection to pass values between the web parts so that the InfoPath form requeries when it gets an input from the login web part. That should also work.
One of those options should do the trick.