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 / 27485
Accepted
jmoreno
jmoreno
Asked: 2012-10-23 09:41:42 +0800 CST2012-10-23 09:41:42 +0800 CST 2012-10-23 09:41:42 +0800 CST

Implicações de segurança e desempenho de "Exibir estado do servidor"

  • 772

Esta questão indica que a permissão "Exibir estado do servidor" é necessária para vários DMVs (visualizações de gerenciamento dinâmico), mas não consigo encontrar nada sobre quem você deseja e não deseja conceder a permissão.

Agora é claro que entendo "menos permissões" e por que você não gostaria de concedê-lo a ninguém, mas não consigo encontrar nenhuma orientação sobre como avaliar se DEVE ser concedido ou não.

Portanto, minha pergunta: quais são as implicações de segurança e desempenho de conceder a um usuário a permissão "Exibir estado do servidor". O que eles podem fazer que talvez não devam ser autorizados a fazer...

Atualização : uma implicação é que o usuário poderá usar o DMV para consultar as consultas. Se as consultas ou parâmetros de consulta puderem conter informações confidenciais que o usuário não conseguiria ver de outra forma, permitir VIEW SERVER STATE permitiria que eles o fizessem (ou seja, dob = ou ssn =).

sql-server permissions
  • 4 4 respostas
  • 16820 Views

4 respostas

  • Voted
  1. Best Answer
    Pete Carter
    2012-10-23T09:52:38+08:002012-10-23T09:52:38+08:00

    Não há problemas de desempenho significativos que eu possa imaginar ao conceder essa permissão. Do ponto de vista da segurança, você corre o risco de permitir que um usuário veja o que você mais detalha sobre seus pontos fracos, então, por exemplo, um usuário mal-intencionado pode ver suas estatísticas de espera mais comuns, o que pode ajudá-lo a direcionar um ataque DoS contra seu servidor .

    Isso é possível? Definitivamente. Isso é provável? Sou compelido a dizer Não, mas lembre-se de que estima-se que 90% dos ataques contra empresas sejam de invasores internos.

    • 8
  2. user61149
    2015-03-12T10:12:47+08:002015-03-12T10:12:47+08:00

    Como administrador, você veria essas informações como estando em seu domínio (desempenho / uso de índice / etc), mas há motivos potencialmente convincentes para que uma organização de desenvolvimento queira essas informações para um grande sistema legado que eles suportam - identificando tabelas zumbis que são apenas tocadas por processos de manutenção, por exemplo.

    No final, sempre acaba sendo uma questão de "sorte e generosidade", pois a pergunta sobre se algum pedido específico é justificado acaba sendo uma escolha suave e não uma fórmula nítida. O uso de padrões de melhores práticas sem olhar para o contexto é em si um antipadrão bastante desagradável e a realidade é que muitos abordam suas posições com "falar com a mão" como ponto de partida.

    • 3
  3. Solomon Rutzky
    2019-10-29T13:43:28+08:002019-10-29T13:43:28+08:00

    Em relação às implicações de desempenho, não tenho conhecimento de nenhuma para esta ou qualquer outra permissão.

    Em relação a:

    O que eles podem fazer que talvez não devam ser autorizados a fazer

    Simplificando, eles podem ver coisas que talvez não devessem ver. E não pense nisso apenas em termos de SQL Server. Essa permissão específica também rege DMVs como sys.dm_os_sys_info e algumas outras que fornecem informações sobre a máquina host (hardware, serviços etc.). Você nem sempre sabe quais informações podem ser usadas contra você. E, mesmo se você estiver bem com alguém vendo tudo o que é permitido por esta permissão agora, às vezes DMVs são adicionados em Service Packs / Atualizações Cumulativas, e então talvez uma nova informação seja exposta que você não conhece.

    Não consigo encontrar nenhuma orientação sobre como avaliar se DEVE ser concedido ou não.

    Como você já mencionou dar às pessoas as permissões mínimas necessárias, o que realmente importa é: alguém precisa dessa permissão para uso ad hoc ? Ou seja, alguém precisa da flexibilidade de fazer suas próprias perguntas? A criação de um ou mais procedimentos armazenados e/ou TVFs com várias instruções funcionaria? Nesse caso, você não precisa conceder permissões a nenhum usuário (que está livre para qualquer coisa permitida por essa permissão) e, em vez disso, concede as permissões ao código (que faz apenas o que está codificado para fazer). Assinatura de módulo é como você consegue isso. O conceito geral é:

    1. Crie o(s) procedimento(s) armazenado(s) e/ou TVF(s) de várias instruções para executar a(s) ação(ões) desejada(s).
    2. Conceda EXECUTEesses módulos a qualquer usuário e/ou funções que precisem executar essas ações
    3. Criar um certificado
    4. Assine o(s) módulo(s) usando esse certificado (usando ADD SIGNATURE)
    5. Copie o certificado para o [master]banco de dados (ou seja, crie um certificado [master]usando a chave pública do certificado usado para assinar o(s) módulo(s).
    6. Crie um login a partir do certificado copiado para[master]
    7. Conceda todas as permissões em nível de instância necessárias para esse login baseado em certificado (que pode incluir adicioná-lo a funções em nível de instância).

    Para alguns exemplos, consulte:

    • Como manter a propriedade do banco de dados restaurando entre domínios?

    • Use permissões de alto nível com segurança e facilidade sem concedê-las a ninguém: nível de servidor

    • 2
  4. Thomas Stringer
    2012-10-24T13:01:58+08:002012-10-24T13:01:58+08:00

    É um problema de segurança. Você nunca errará se seguir o Princípio dos Menos Privilegiados . Em outras palavras, se um principal de autenticação não precisar de uma permissão específica, não a conceda a ele. Você dá informações sobre o tipo de fechadura em sua porta para outras pessoas que não precisam saber disso sobre sua casa? Eu espero que não. Eles provavelmente não fariam nada, mas ainda não é prudente.

    Se baseássemos os princípios de dados na sorte e na generosidade, estaríamos em apuros com mais frequência. A segurança é um aspecto em que você só deve conceder quando puder defender por que concedeu. Você está simplesmente dando a alguém mais informações do que eles precisam saber . Não faça isso. O estado do servidor ainda é sensível.

    • 0

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

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

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

Sidebar

Stats

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

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

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

    • 4 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

    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
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +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
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +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