Du kan använda NEKA VISA NÅGON DATABAS kommando för den eller de specifika användarna. Detta är en ny funktion tillgänglig i SQL Server 2008.
Det hindrar användaren från att se systemkatalogen (sys.databases, sys.sysdatabases, etc.) och gör därför DB:n osynlig för dem i SQL Management Studio (SSMS).
Kör det här kommandot från masterdatabasen:
DENY VIEW ANY DATABASE TO 'loginName'
Användaren kan fortfarande komma åt databasen via din applikation. Men om de loggar in via SSMS kommer din databas inte att visas i listan över databaser och om de öppnar ett frågefönster kommer din databas inte att visas i rullgardinsmenyn.
Detta är dock inte idiotsäkert. Om användaren är smart nog att köra frågekommandot:
USE <YourDatabaseName>
Då kommer de att se databasen i Query Analyzer.
Eftersom den här lösningen tar dig dit till 90 %, skulle jag ge databasen ett okänt namn och inte låta användarna veta namnet på databasen.