Uma das configurações para um usuário do SQL Server é o arquivo DEFAULT_SCHEMA
. Isso é frequente, dbo
mas nem sempre. Sei que você pode alterar a configuração usando este código:
ALTER USER [UserName] WITH DEFAULT_SCHEMA = [SchemaName]
Pelo que posso dizer, sempre que crio um USER
e não especifico DEFAULT_SCHEMA
que ele usa dbo
. Mas ainda estou descobrindo USERS
que tem um esquema padrão diferente.
Se bem me lembro quando você tem uma instância que é atualizada do SQL 2000, o esquema padrão é o esquema correspondente ao nome do usuário. Eu estou supondo que é de onde vem a maioria, se não tudo, do que estou vendo.
Existem outras maneiras de criar um USER
sem especificar DEFAULT_SCHEMA
e fazer com que seja criado com algo diferente de dbo
?
Nota: Isso é para versões do SQL Server 2005 e superiores.
Uma maneira de isso acontecer é ter um Login que tenha a
CONTROL SERVER
permissão de nível de servidor (portanto, não precisa de uma permissão realUSER
para acessar um banco de dados), mas não nasysadmin
função de servidor fixa (pois há um esquema padrão implícito dedbo
) criar um objeto sem especificar explicitamente o esquema para colocá-lo.De acordo com a página do MSDN para CREATE SCHEMA :
Portanto, estou falando do primeiro caso observado acima, e a resposta de @Max é sobre esse segundo caso.
O seguinte é um exemplo para o primeiro caso (observe que o exemplo a seguir usa
tempdb
, pois todas as instâncias têm isso, mas testei em um nãotempdb
banco de dados para ter certeza). Para ver um exemplo do segundo caso, consulte a resposta de @Max (não há necessidade de duplicar isso aqui).O esquema de um usuário que é membro de um Grupo do Windows que tem acesso ao banco de dados do SQL Server por meio desse Grupo do Windows se tornará o nome do usuário automaticamente.
Para testar isso, acabei de criar um grupo em minha máquina local chamado "TestGroup". Adicionei um usuário do Windows "TestUser" a esse grupo. Em seguida, fiz o seguinte na minha instância local:
Em seguida, iniciei o SSMS como "TestUser" e loguei na instância local. Então eu corri o seguinte:
Os resultados: