Bạn có thể sử dụng XEM BẤT KỲ CƠ SỞ DỮ LIỆU nào lệnh cho (các) người dùng cụ thể. Đây là một tính năng mới có sẵn trong SQL Server 2008.
Nó ngăn người dùng nhìn thấy danh mục hệ thống (sys.databases, sys.sysdatabases, v.v.) và do đó làm cho DB ẩn với họ trong SQL Management Studio (SSMS).
Chạy lệnh này từ Cơ sở dữ liệu chính:
DENY VIEW ANY DATABASE TO 'loginName'
Người dùng vẫn có thể truy cập cơ sở dữ liệu thông qua ứng dụng của bạn. Tuy nhiên, nếu họ đăng nhập thông qua SSMS, cơ sở dữ liệu của bạn sẽ không hiển thị trong danh sách cơ sở dữ liệu và nếu họ mở cửa sổ truy vấn, cơ sở dữ liệu của bạn sẽ không xuất hiện trong menu thả xuống.
Tuy nhiên, điều này không phải là lừa dối. Nếu người dùng đủ thông minh để chạy Lệnh truy vấn:
USE <YourDatabaseName>
Sau đó, họ sẽ thấy cơ sở dữ liệu trong Trình phân tích truy vấn.
Vì giải pháp này đang đưa bạn đến 90% ở đó, tôi sẽ đặt cho cơ sở dữ liệu một cái tên khó hiểu để không cho người dùng biết tên của cơ sở dữ liệu.