You can DENY VIEW ANY DATABASE (REVOKE is not enough) and make the user the database owner (different than being in the db_owner Role) of the database:
USE [master]
GO
DENY VIEW ANY DATABASE TO [YourServerLogin];
GO
USE [YourDatabase]
GO
-- note: the server login cannot be mapped to a database user. if the login is mapped to a
-- user you first have to drop the user before making the login the database owner
-- also note: a database can only have one owner so this technique only works if each login
-- has its own database and the login should have full control over that database
ALTER AUTHORIZATION ON DATABASE::[YourDatabase]TO [YourServerLogin]
GO
edit: fix dbo
There are no special teachers of virtue, because virtue is taught by the whole community.
--Plato