So I'm not finding an answer to my specific issue.

  • SQL Server 2012 database
  • SSMS 17 admin tool

Log on as a database (not domain) user foo.

Receive sys.xp_instance_regread no permission errors.

In past versions of SSMS you get the errors, but you can do your work on your database.

I've seen this before, the user needs execute permission on the stored procedure. Shoot I even have a script I use all the time for domain users

Grant Execute ON [sys].[xp_instance_regread] TO [domain\user];

So I modify it:

Grant Execute ON [sys].[xp_instance_regread] TO [foo];

but get this error:

Msg 15151, Level 16, State 1, Line 1
Cannot find the user 'foo', because it does not exist or you do not have permission.

Now the user exists and my account has sysadmin access.

Any ideas on how to fix this?

3 Answers 3


So if anyone is curious the fast answer was to go into the UI and add the foo user to master thru the user mapping tab.

Wonder why?


Make sure there is an user mapping for your login in the master table.

No database role memberships are required, just tick 'Map' for the database master under User Mapping in the properties for the login UserName.


First step go to Login go to properties after that user mapping add login into master database click ok .

step to 2 go to master db go to user >go to properties >> permission > search> go to sys object >select xp_instance_regread > provide to execute permission click ok

and check it working.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.