Grant access only to System databases
There are a couple of approaches you can take.  The better one is to grant VIEW SERVER STATE.  This gives you access to the DMOs that give you information about the server.

The other version (which I don't recommend) is to grant CONTROL SERVER.  This permission is very similar to SYSADMIN but you can do DENYs.  So you could DENY CONNECT on each of the user databases.  The down side here is that you are giving someone (for example) the ability to stop &amp; start the SQL Services.

Unless you have a VERY good reason to go beyond VIEW SERVER STATE just go with that one.

You can also look at the list of server level roles and see what matches your needs.  Just remember that someone with securityadmin for example could create a login with sufficient permissions to affect the databases.