I hope the user can only see his own database name when connecting the database using SQL Server Management Studio, is it possible?
You need to change the VIEW ANY DATABASE permission. By default it is granted to the public role, which is why all users can see all DBs.
I don't think it's possible - but why does it matter? Don't give their login any rights to anything besides their own database and they can't make queries or do anything else where they shouldn't.
/Edit - I knew that my knowledge is only good up through SQL 2005 - as LukeR says below, this is now possible with SQL 2008, so there you go.