SQL Server: dbo vs membro da função db_owner?

7

Estou atribuindo o usuário a um novo banco de dados. Qual é a diferença de o usuário ser um usuário padrão do dbo em comparação com a assinatura do login como um membro da função db_owner?

    
por nickel 14.03.2011 / 10:11

2 respostas

7

Todo banco de dados deve ter um usuário dbo, que por padrão é atribuído à função de banco de dados db_owner. Há também um esquema dbo, que é parcialmente um remanescente do SQL Server 2000 e anterior, em que os usuários e os esquemas eram um no mesmo. Também é um pouco especial, pois as consultas procurarão objetos no esquema dbo se não forem encontrados no esquema padrão do usuário (supondo que o nome do objeto não tenha sido qualificado com um nome de esquema).

Você só pode mapear um único login para o usuário do dbo em um banco de dados (como é o caso de qualquer usuário do banco de dados), mas pode atribuir quantos usuários desejar à função db_owner, dando-lhes essencialmente controle total do banco de dados. banco de dados.

Se você definir um esquema padrão para um usuário do banco de dados, isso não terá nenhum efeito em termos de segurança. Ele simplesmente controla qual esquema por padrão será usado para criar e referenciar objetos quando um nome de esquema específico não for fornecido com o nome do objeto. No SQL Server 2000 e versões anteriores, como não havia separação de usuários e esquemas, o esquema padrão de um usuário era sempre ele mesmo, a menos que explicitamente especificado de outra forma, por exemplo, "CREATE TABLE dbo.test_table ..." vs "CREATE TABLE test_table ...". (Observe que o esquema dbo ainda era usado para objetos não encontrados no esquema padrão de um usuário).

    
por 14.03.2011 / 13:19
0

O usuário dbo padrão não pode visualizar nenhum objeto de banco de dados.db_owner pode executar todas as atividades de configuração e manutenção no banco de dados

    
por 14.03.2011 / 12:35