AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 8917
Accepted
jrara
jrara
Asked: 2011-12-08 11:28:49 +0800 CST2011-12-08 11:28:49 +0800 CST 2011-12-08 11:28:49 +0800 CST

O esquema dbo deve ser evitado?

  • 772

Quando se trata do esquema dbo:

  • É uma prática recomendada evitar o uso do esquema dbo ao criar objetos de banco de dados?
  • Por que o esquema dbo deve ser evitado ou deveria?
  • Qual usuário de banco de dados deve possuir o esquema dbo?
sql-server sql-server-2008
  • 4 4 respostas
  • 34069 Views

4 respostas

  • Voted
  1. Best Answer
    Ryan
    2011-12-08T12:28:11+08:002011-12-08T12:28:11+08:00

    Pode ser uma boa prática porque quando você tem outros usuários usando o banco de dados, você quer poder limitar o acesso deles com esquemas. Por exemplo, em um banco de dados, você tem as seguintes tabelas.

    HR.Payhist
    HR.Payscale
    HR.Jobdesc
    IT.username
    IT.useraccesslevel
    ENG.jobsite
    ENG.trainings
    

    Como diretor de RH, posso acessar qualquer coisa no HResquema, como ITdiretor posso ver nomes de usuários e níveis de acesso dos funcionários. O Engineeringdepartamento pode ver quais locais de trabalho estão ativos, etc. Se dbo fosse o esquema definido para todas as tabelas, eu teria mais dificuldade em segmentar meus dados e fornecer funções de acesso.

    A ideia, acredito, no SQL Server é oferecer um produto que possa ser acessado e consultado por diferentes departamentos. Na realidade, apenas DBAs/DBDevs realmente acessam o banco de dados e normalmente armazena apenas dados de aplicativos.

    Também ajuda na legibilidade e capacidade de gerenciamento. À primeira vista, posso identificar facilmente qual tabela contém quais dados e como os dados são separados.

    Pessoalmente, prefiro definir esquemas como uma prática geral. Lembre-se de que esquema é grego para plano, ter uma estrutura de esquema definida ajuda você a planejar e identificar dados.

    • 25
  2. Eric Humphrey - lotsahelp
    2011-12-08T12:07:02+08:002011-12-08T12:07:02+08:00

    Eu acho que isso realmente se resume à preferência do usuário, pois não há nenhuma razão tecnológica real para fazer isso. Na verdade, para simplificar, eu digo sempre use dbo, a menos que seus requisitos de segurança estipulem o contrário. Claro, você sempre pode fazer isso apenas para fins organizacionais.

    • 9
  3. DForck42
    2011-12-08T13:27:56+08:002011-12-08T13:27:56+08:00

    Se alguma coisa, dbo deve ser evitado porque é o padrão para o SQL Server, também não é descritivo. Como todos os outros nomes padrão, como é pré-conhecido, torna a vida de um hacker muito mais fácil (embora, se eles estiverem no ponto em que estão apenas tentando descobrir o nome do seu esquema, você provavelmente já está borked).

    Onde trabalho, usamos esquemas para dividir o banco de dados em seções lógicas e atribuir permissões aos esquemas.

    Por exemplo, podemos ter um sistema de inventário com um banco de dados. As tabelas principais podem estar no esquema inv. Se importarmos qualquer coisa para o banco de dados, um esquema de teste será usado como parte do processo de importação. Se tivermos procedimentos armazenados do sistema aos quais os usuários não precisam acessar, os colocaremos em um esquema sp.

    • 7
  4. user507
    2011-12-08T12:43:01+08:002011-12-08T12:43:01+08:00

    Não era uma prática recomendada anteriormente porque os esquemas eram ocultos antes do SQL 2005, tudo era colocado no esquema dbo. A equipe do SQL Server mostra isso como uma prática recomendada e publicou um artigo sobre isso: Práticas recomendadas do SQL Server – Implementação de esquemas de objetos de banco de dados

    Quanto à sua outra pergunta sobre quem deve ser o proprietário: o esquema dbo é de propriedade da conta de usuário dbo.

    • 5

relate perguntas

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Quanto "Padding" coloco em meus índices?

  • Existe um processo do tipo "práticas recomendadas" para os desenvolvedores seguirem para alterações no banco de dados?

  • Como determinar se um Índice é necessário ou necessário

  • Downgrade do SQL Server 2008 para 2005

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como você mostra o SQL em execução em um banco de dados Oracle?

    • 2 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Posso ver Consultas Históricas executadas em um banco de dados SQL Server?

    • 6 respostas
  • Marko Smith

    Como uso currval() no PostgreSQL para obter o último id inserido?

    • 10 respostas
  • Marko Smith

    Como executar o psql no Mac OS X?

    • 11 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Marko Smith

    Passando parâmetros de array para um procedimento armazenado

    • 12 respostas
  • Martin Hope
    Manuel Leduc Restrição exclusiva de várias colunas do PostgreSQL e valores NULL 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler Quando uma chave primária deve ser declarada sem cluster? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - Qual é melhor como chave primária? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick Como posso otimizar um mysqldump de um banco de dados grande? 2011-01-04 13:13:48 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve