Můžete použít DENY VIEW ANY DATABASE příkaz pro konkrétního uživatele (uživatele). Toto je nová funkce dostupná v SQL Server 2008.
Zabraňuje uživateli vidět systémový katalog (sys.databases, sys.sysdatabases atd.), a proto pro něj činí DB neviditelnou v SQL Management Studio (SSMS).
Spusťte tento příkaz z hlavní databáze:
DENY VIEW ANY DATABASE TO 'loginName'
Uživatel má stále přístup k databázi prostřednictvím vaší aplikace. Pokud se však přihlásí pomocí SSMS, vaše databáze se nezobrazí v seznamu databází a pokud otevřou okno dotazu, vaše databáze se v rozevíracím seznamu nezobrazí.
To však není spolehlivé. Pokud je uživatel dostatečně chytrý, aby spustil příkaz Query:
USE <YourDatabaseName>
Poté uvidí databázi v Query Analyzer.
Vzhledem k tomu, že toto řešení vás zavede z 90 %, dal bych databázi nějaké nejasné jméno, aby uživatelé neznali název databáze.