I ran into an issue the other day where we moved an application database that was using named schemas (other than DBO) to logically organize the tables within the database. When we moved the database to a new sql server, we mapped the application’s SQL login to the new database (with the default schema set to a named schema within the database and NOT dbo).
The problem is that the application’s connection seemed to be using the dbo schema by default even though the mapped DB user had the correct default schema. After a little digging, we learned that if a login has the sysadmin role at the server level, then all queries against user database will default to using the dbo schema regardless of what you have set for the default schema in the mapped database user account.
I found the answer here:
but there are countless other links describing this behavior. Hope it saves someone a little time.