Wenn ein Benutzer nur eine Datenbank bearbeiten darf so würde ich der "Anmeldung" auch nur die Rechte für diese Datenbank geben.
Die Rollen sind so gedacht ( zumindest jetzt mal grob laienhaft erklärt ) dass du sozusagen definieren kannst welche Rechte zusammen gehören und diese kannst du in einer Rolle bündeln. Sobald ich diese Rolle habe, habe ich auch alle Rechte dieser Rolle.
Beispiel : vordefiniert ist die Rolle Datareader - User die diese Rolle haben können alle Daten lesen - sie können allerdings keine StoredProcedures ausführen oder datenmanipulieren.
Um nun Daten zu bearbeiten kann man entweder - ihm die Rolle Datawriter geben oder ihm zusätzlich für jede Tabelle die er bearbeiten darf Einzelberechtigung geben.
Die Datenbankrollen sind aber immer nur für eine Datenbank gültig.
Daneben gibt es noch die Serverrollen.
Diese sind dann auf den gesamten Server zu sehen. Wobei auch hier einzelne Differenzierungen gemacht wurden. Der Sysadmin ist sozusagen der Datenbank - Gott und darf alles wohin gegen die public rolle am wenigsten darf - soweit ich weiss allerdings überall dann aber die Datareaderrechte hat.
als Hinweis schon mal ein Link in die MSDN
http://msdn.microsoft.com/de-de/library/bb669065.aspx
Als Lösung für dein Problem:
Im Normalfall reicht es die User nur für die Datenbank zu Berechtigen die Sie auch sehen sollen.
LG
Alex