SQL Server 2012 is database name mandatory for logon?
I think you are confusing database name and instance name. SQL Server can be installed as a default instance (in which case connecting to SERVERNAME is sufficient), or as a named instance (in which case you need to use SERVERNAME\INSTANCENAME or in some cases SERVERNAME,PORT_NUMBER). You would never connect to SQL Server using SERVERNAME\DBNAME, but you may wish to explicitly set the database name in the connection string (or in the Options &gt;&gt; section of the connection dialog) anyway, so that your user does not execute things in the wrong database by mistake (I suspect this is how a lot of user objects end up in master, model, tempdb, etc).

In SQL Server 2012, database name is only mandatory in the connection string when you are connecting to a partially contained database with a contained database user. For example:

EXEC sp_configure 'contained database authentication', 1;
GO
RECONFIGURE;
GO
CREATE DATABASE contained;
GO
ALTER DATABASE contained SET CONTAINMENT = PARTIAL;
GO
USE contained;
GO
CREATE USER contained WITH PASSWORD = 'contained';
GO


If I try to connect to the instance with those credentials, but without specifying a database name explicitly under Options &gt;&gt;:


  


I get the following error:


  Cannot connect to SHELDON\SQL2014CTPn.
  Login failed for user 'contained'. (Microsoft SQL Server, Error: 18456)


In the error log:


  Error: 18456, Severity: 14, State: 5.
  Login failed for user 'contained'. Reason: Could not find a matching login matching the name provided.


I get the same error message if I use the &lt;Browse server...&gt; option; I need to type the database manually:


  


When I do, I can connect. Of course the Object Explorer tree is much less useful when I connect as a contained database user; by design, I only have access to that database:


  


Contained databases came about to help make migration of databases to different servers easier. There is no way to just say "well, I'm a contained database user, but why don't you tell me which database I'm allowed to connect to?" You need to be explicit, especially because different contained databases could have different users with the same username (and even the same password); nothing in the system prevents this (because it would make migration more difficult).

If you are not using contained databases (and, specifically, contained database users), then nothing is different from previous versions.