Como regra, você deve especificar explicitamente odbo
esquema se desejar criar o objeto nesse esquema.
Como você é db_owner
, seu esquema padrão é dbo
, portanto, não há problema quando você não especifica o esquema dbo ao criar objetos. Mas para outros usuários (Windows) não é a mesma coisa.
Seus usuários são membros Windows group
que não possuem esquema padrão. Nesse caso, o usuário correspondente e o esquema são criados quando o usuário cria qualquer objeto, está documentado aqui: CREATE SCHEMA (Transact-SQL)
Esquema implícito e criação de usuário
Em alguns casos, um usuário pode usar um banco de dados sem ter uma conta de usuário (um principal de banco de dados no banco de dados). Isso pode acontecer nas seguintes situações:
Um login tem privilégios de CONTROL SERVER.
Um usuário do Windows não possui uma conta de usuário de banco de dados individual (um principal de banco de dados no banco de dados), mas acessa um banco de dados como membro de um grupo do Windows que possui uma conta de usuário de banco de dados (um principal de banco de dados para o grupo Windows).
Quando um usuário sem uma conta de usuário do banco de dados cria um objeto sem especificar um esquema existente, o principal do banco de dados e o esquema padrão serão criados automaticamente no banco de dados para esse usuário. O principal e o esquema do banco de dados criados terão o mesmo nome que o usuário usou ao se conectar ao SQL Server (o nome de login da autenticação do SQL Server ou o nome de usuário do Windows).
Esse comportamento é necessário para permitir que usuários baseados em grupos do Windows criem e possuam objetos. No entanto, pode resultar na criação não intencional de esquemas e usuários. Para evitar a criação implícita de usuários e esquemas, sempre que possível, crie explicitamente entidades de banco de dados e atribua um esquema padrão. Ou indique explicitamente um esquema existente ao criar objetos em um banco de dados, usando nomes de objetos de duas ou três partes.
Para resolver o problema, atribua o dbo
esquema default schema
a todos os seus grupos de usuários-Windows ou escreva-o explicitamente ao criar objetos. Sempre.