Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

NESTA TAREFA

Sumário

Este artigo descreve como desativar consultas ad hoc que usam a OPENROWSET ou a funcionalidade OPENDATASOURCE no Microsoft SQL Server.

Desabilitar instruções Transact-SQL

Você pode desativar as instruções Transact-SQL que usam sequências de caracteres de conexão ad-hoc com provedores OLE DB específicos nas funções OPENROWSET e OPENDATASOURCE usando uma das seguintes ações:

  • Quando você cria um servidor vinculado em um computador que esteja executando o SQL Server, você pode especificar a propriedade DisallowAdHocAccess para o provedor OLE DB.

  • Se já existir um servidor vinculado, você pode modificar manualmente o registro e, em seguida, adicione o valor de DisallowAdHocAccess .


Especificar a propriedade DisallowAdHocAccess quando você cria um servidor vinculado

Quando você cria um servidor vinculado em um computador que esteja executando o SQL Server, você pode especificar a propriedade DisallowAdHocAccess para o provedor OLE DB. Para fazer isso, execute as seguintes etapas:

  1. Abra o SQL Server Enterprise Manager e, em seguida, clique para selecionar a pasta de segurança do servidor em questão.

  2. Clique na entrada de Servidores vinculados e, em seguida, clique em Novo servidor vinculado.

  3. Clique para selecionar o provedor do OLE DB que você deseja usar e, em seguida, clique no botão Opções do provedor .

  4. Role para baixo e marque a caixa de seleção não permitir adhoc acesso propriedade. Continue concluir a criação da sua entrada de servidor vinculado.


Modificar o registro manualmente e adicione o valor de DisallowAdHocAccess

Depois que um servidor vinculado é salvo, a propriedade DisallowAdHocAccess pode ser definida por meio de uma configuração do registro.

Observação: As duas ilustrações são apenas exemplos de como você pode alterar o provedor OLE DB para ambos os ODBC e o provedor SQL Server OLE DB. Se você quiser usar um provedor OLE DB diferente, você deve modificar a entrada do provedor.

Importante: essa seção, método ou tarefa contém etapas que informam sobre como modificar o registro. No entanto, sérios problemas poderão ocorrer caso você modifique o registro incorretamente. Portanto, certifique-se de seguir estes passos cuidadosamente. Para obter mais proteção, faça backup do registro antes de modificá-lo. Em seguida, você poderá restaurar o registro caso ocorra um problema. Para obter mais informações sobre como fazer backup e restaurar o registro, clique no número do artigo a seguir para visualizá-lo na Base de Dados de Conhecimento da Microsoft:

322756 como fazer backup e restaurar o registro no Windows

Adicione o valor de DisallowAdHocAccess

Para adicionar o valor de DisallowAdHocAccess , execute essas etapas:

  1. Inicie o Editor do Registro.

  2. Localize e clique na seguinte chave no registro:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\<ProviderName>
    Exemplo:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\MSDASQL

  3. No menu Editar , clique em Adicionar valore adicione este valor do registro:

       Value name: DisallowAdHocAccess
    Data type: REG_DWORD
    Radix: Hex
    Value data: 1
  4. Feche o Editor do registro.

Modificar um valor DisallowAdHocAccess existente

Para modificar um valor DisallowAdHocAccess existente, siga estas etapas:

  1. Inicie o Editor do Registro.

  2. Localize e, em seguida, clique no valor de DisallowAdHocAccess sob a seguinte chave no registro:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\<ProviderName>
    Exemplo:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\Microsoft.ACE.OLEDB.12.0

  3. No menu Editar , clique em DWORD, digite 1e clique em OK.

  4. Feche o Editor do registro.

Para uma instância nomeada, a chave do registro é diferente:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL servidor \ < nome da instância > \Providers\ < ProviderName >
Observação:

  • Uma alteração do valor do DisallowAdHocAscess de 1 para 0 não requer a reinicialização do serviço SQL, enquanto uma alteração de 0 para 1 precisa ter um serviço SQL reiniciar para que a alteração foi feita para entrar em vigor.

  • Com a propriedade DisallowAdHocAccess definida como 1, o SQL Server não permite acesso ad-hoc através de OPENROWSET e as funções OPENDATASOURCE contra o provedor OLE DB especificado. Se você tentar chamar essas funções em consultas ad hoc, você recebe uma mensagem de erro semelhante à seguinte:

    Servidor: Msg 7415, Level 16, State 1, linha 1 acesso Ad hoc ao provedor do OLE DB 'Microsoft.Jet.OLEDB.4.0' foi negado. Você deve acessar esse provedor através de um servidor vinculado.

    Em outras palavras, com a propriedade DisallowAdHocAccess definida como 1 para um provedor OLE DB específico, você deve usar uma configuração predefinida de servidor vinculado para o provedor do OLE DB específico. Você não pode passar uma cadeia de caracteres de conexão ad hoc que faz referência a esse provedor a OPENROWSET ou a função OPENDATASOURCE .



Referências

SQL Server Books Online; tópicos: "Configurando OLE DB provedores para consultas distribuídos;" "Referência do Transact-SQL OPENROWSET"; "Referência do Transact-SQL OPENDATASOURCE"

Precisa de mais ajuda?

Expanda suas habilidades

Explore o treinamento >

Obtenha novos recursos primeiro

INGRESSAR NO MICROSOFT 365 INSIDERS >

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?

Agradecemos seus comentários!

×