Partilhar via


Considerações de Segurança com Carga em Massa (SQLXML 4.0)

Aplica-se a:SQL ServerBanco de Dados SQL do Azure

Seguem-se as diretrizes de segurança para a utilização do XML Bulk Load:

  • Quando especifica que a operação de Carregamento em Massa deve ser realizada como uma transação, utiliza a propriedade TempFilePath para especificar uma pasta onde criar os ficheiros temporários.

    O processo Bulk Load cria estes ficheiros temporários com as seguintes permissões:

    • O acesso de Leitura/Escrita/Eliminação é concedido ao processo de Carregamento em Massa.

    • A permissão de Ler é concedida a todos os utilizadores, porque a conta sob a qual o Microsoft SQL Server irá aceder a estes ficheiros é desconhecida. Pode restringir o acesso a estes ficheiros temporários definindo as permissões apropriadas na pasta que os contém.

  • O XML Bulk Load não tem definições de permissões. Assume-se que a base de dados está configurada corretamente e que o contexto do utilizador (ou seja, o login que o Bulk Load é definido) tem as permissões apropriadas definidas.

  • No modo não transacional, se ocorrer um erro durante o processo de Carregamento em Massa, os dados podem ficar parcialmente carregados. O Bulk Load simplesmente para no ponto em que isto acontece. O modo transacional pode ser usado para aliviar este problema.

  • Quando ocorrem erros de carregamento em massa, podem incluir informações sobre a base de dados. Por exemplo, podem incluir o nome de uma tabela ou coluna, ou informação sobre o tipo de coluna. Quando usar Bulk Load, deve ter cuidado para detetar erros do processo Bulk Load e devolver uma mensagem de erro genérica, em vez de expor erros diretamente aos utilizadores.

  • O Bulk Load não define limite para a quantidade de dados sobre a qual trabalha. O Bulk Load não verifica o tamanho dos dados a carregar. É responsabilidade do utilizador que executa o Bulk Load garantir que existe memória suficiente para processar o ficheiro especificado e que há espaço suficiente na base de dados para armazenar os dados a serem carregados.

  • O Bulk Load não tenta usar os dados fornecidos como código. A entrada de dados nunca é executada de qualquer forma. Qualquer código ou comandos nos dados de entrada são tratados como dados normais e não serão executados.

  • O Bulk Load pode fazer alterações de formatação aos dados dados com base nas diferenças entre os modelos de dados XML e SQL Server. Por exemplo, o formato para especificar uma hora é diferente. A Bulk Load tentará resolver estas diferenças. Como resultado, alguma informação precisa pode ser perdida.

  • O Bulk Load não estabelece limite para o tempo que demora a processar os dados. O processamento continuará até que o processamento seja concluído ou ocorra um erro.

  • O Bulk Load pode criar e eliminar tabelas temporárias dentro da base de dados e necessita de permissões para o fazer. As permissões para estas tabelas serão atribuídas ao mesmo utilizador que se está a ligar à base de dados para o processo de Bulk Load.

  • O Bulk Load pode criar e eliminar ficheiros temporários usados durante o processamento em modo transacional e necessita de permissões para o fazer. Estes ficheiros são criados com as mesmas permissões que o utilizador atual da thread onde o Bulk Load está a correr.

  • Se o utilizador definir um ficheiro de registo de erro para o SQLXML escrever erros, então cada vez que o Bulk Load for executado, o ficheiro será sobrescrito com dados do último processo de Bulk Load.

Ver também

Executando o carregamento em massa de dados XML (SQLXML 4.0)