If you have ever wanted to hide an instance of SQL Server, this is the post for you. Read on.
When you launch SQL Server Management Studio (SSMS), you see the option to connect to an instance. If desired, you have the ability to browse instances running on your network. Just click on the dropdown and at the bottom there is a ‘Browse for more…’ option:
This allows you to browse for local or network instances. I have four instances running on my laptop you see them displayed in this list:
Let’s assume one of these instances is double top secret and we don’t want users to see the instance name. That’s possible through SQL Server Configuration Manager (SSCM). Open up SSCM and navigate to your SQL Server instances:
In SSCM, expand SQL Server Network Configuration, right-click ‘Protocols’ for the instance you want to hide, then select ‘Properties’:
On the Flags tab, in the ‘Hide Instance’ box, select Yes, and then click OK to close the dialog box:
The dialogue box says to restart SQL to apply the changes, but that is not the case for this specific change. Any new connection will not be able to see this instance listed. Here’s what I see after closing SSMS and trying to browse again:
There you go, an easy way to hide your SQL Server instance from anyone that is browsing your network.
Beware that there is a problem with this scenario for named instances and SQL2016, where the SQL Server Agent service stops. Microsoft is aware of this issue.
Thanks for the heads up, is there a link to the reported bug?
I believe it is too early for that. It has to do with the release of SQL2016/CU7+KB4057119 (the security patch released as CU7). We have an open Microsoft support case, but it has not yet been reported/confirmed as a bug.
Thanks again!
Commenting here for updates
We have noticed that the instance will not stay hidden. It reappears after awhile and the only way to hide it again is to restart the sql browser service but again it is only temporary.