1) You got to remove the VIEW ANY DATABASE permission for the public group.

(T-SQL)

USE master
Deny VIEW ANY DATABASE to public

2) to let the user see his database you must make this user the owner of the db when you create the database:

screenshot


see here for more details.