Propriedades de inicialização e autorização (provedor OLE DB do cliente nativo)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

Importante

O SQL Server Native Client (geralmente abreviado como SNAC) foi removido do SQL Server 2022 (16.x) e do SSMS (SQL Server Management Studio) 19. O provedor OLE DB do SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o Provedor OLE DB herdado da Microsoft para o SQL Server (SQLOLEDB) não são recomendados para um novo desenvolvimento. Alterne para o novo Driver do Microsoft OLE DB para SQL Server (MSOLEDBSQL) no futuro.

O provedor OLE DB do SQL Server Native Client interpreta as propriedades de inicialização e autorização do OLE DB da seguinte maneira:

ID da propriedade Descrição
DBPROP_AUTH_CACHE_AUTHINFO O provedor OLE DB do SQL Server Native Client não armazena informações de autenticação em cache.

O provedor OLE DB do SQL Server Native Client retorna DB_S_ERRORSOCCURRED em uma tentativa de definir o valor da propriedade. O membro dwStatus da Estrutura DBPROP indica DBPROPSTATUS_NOTSUPPORTED.
DBPROP_AUTH_ENCRYPT_PASSWORD O provedor OLE DB do SQL Server Native Client usa mecanismos de segurança padrão do Microsoft SQL Server para ocultar senhas.

O provedor OLE DB do SQL Server Native Client retorna DB_S_ERRORSOCCURRED em uma tentativa de definir o valor da propriedade. O membro dwStatus da Estrutura DBPROP indica DBPROPSTATUS_NOTSUPPORTED.
DBPROP_AUTH_INTEGRATED Se DBPROP_AUTH_INTEGRATED for definido como um ponteiro NULL, uma cadeia de caracteres nula ou um valor de VT_BSTR 'SSPI', o provedor OLE DB do SQL Server Native Client usará o Modo de Autenticação do Windows para autorizar o acesso do usuário ao banco de dados do SQL Server especificado pelas propriedades DBPROP_INIT_DATASOURCE e DBPROP_INIT_CATALOG.

Se for definido como VT_EMPTY (o padrão), segurança do SQL Server será usada. O logon e a senha do SQL Server são especificados nas propriedades DBPROP_AUTH_USERID e DBPROP_AUTH_PASSWORD.
DBPROP_AUTH_MASK_PASSWORD O provedor OLE DB do SQL Server Native Client usa mecanismos de segurança padrão do SQL Server para ocultar senhas.

O provedor OLE DB do SQL Server Native Client retorna DB_S_ERRORSOCCURRED em uma tentativa de definir o valor da propriedade. O membro dwStatus da Estrutura DBPROP indica DBPROPSTATUS_NOTSUPPORTED.
DBPROP_AUTH_PASSWORD Senha atribuída a um logon do SQL Server. Esta propriedade é usada quando Autenticação do SQL Server é selecionada para autorizar acesso a um banco de dados do SQL Server.
DBPROP_AUTH_PERSIST_ENCRYPTED O provedor OLE DB do SQL Server Native Client não criptografa informações de autenticação quando persistidas.

O provedor OLE DB do SQL Server Native Client retorna DB_S_ERRORSOCCURRED em uma tentativa de definir o valor da propriedade. O membro dwStatus da Estrutura DBPROP indica DBPROPSTATUS_NOTSUPPORTED.
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO O provedor OLE DB do SQL Server Native Client persiste os valores de autenticação, incluindo uma imagem de uma senha, se solicitado. Nenhuma criptografia é fornecida.
DBPROP_AUTH_USERID Logon do SQL Server. Esta propriedade é usada quando Autenticação do SQL Server é selecionada para autorizar acesso a um banco de dados do SQL Server.
DBPROP_INIT_ASYNCH O provedor OLE DB do SQL Server Native Client dá suporte à iniciação assíncrona.

A definição do bit DBPROPVAL_ASYNCH_INITIALIZE na propriedade DBPROP_INIT_ASYNCH faz com que IDBInitialize::Initialize se torne uma chamada sem bloqueio. Confira mais informações em Realizar Operações Assíncronas.
DBPROP_INIT_CATALOG Nome de um banco de dados existente do SQL Server ao qual se conectar.
DBPROP_INIT_DATASOURCE Nome da rede de um servidor que executa uma instância do Microsoft SQL Server. Se houver várias instâncias do SQL Server em execução no computador, para se conectar a uma instância específica do SQL Server, o valor DBPROP_INIT_DATASOURCE será especificado como \\ServerName\InstanceName. A sequência de escape \\ é usada para a barra invertida.
DBPROP_INIT_GENERALTIMEOUT Indica o número de segundos antes que uma solicitação, diferente da inicialização da fonte de dados e da execução do comando, atinja o tempo limite. Um valor de 0 indica um tempo limite infinito. Os provedores que trabalham em conexões de rede ou em cenários distribuídos ou transacionados podem dar suporte a essa propriedade para aconselhar um componente inscrito a atingir o tempo limite no caso de uma solicitação de execução longa. Os tempos limites para a inicialização da fonte de dados e a execução de comando permanecem controlados por DBPROP_INIT_TIMEOUT e DBPROP_COMMANDTIMEOUT, respectivamente.

DBPROP_INIT_GENERALTIMEOUT é somente leitura e, se uma pessoa tentar defini-lo, o erro dwstatus de DBPROPSTATUS_NOTSETTABLE será retornado.
DBPROP_INIT_HWND O identificador do Windows do aplicativo de chamada. Um identificador de janela válido é necessário para a caixa de diálogo de inicialização exibida quando a solicitação de propriedades de inicialização é permitida.
DBPROP_INIT_IMPERSONATION_LEVEL O provedor OLE DB do SQL Server Native Client não oferece suporte ao ajuste de nível de representação.

O provedor OLE DB do SQL Server Native Client retorna DB_S_ERRORSOCCURRED em uma tentativa de definir o valor da propriedade. O membro dwStatus da Estrutura DBPROP indica DBPROPSTATUS_NOTSUPPORTED.
DBPROP_INIT_LCID O provedor OLE DB do SQL Server Native Client valida a ID de localidade e retorna um erro se a ID de localidade não tiver suporte ou não estiver instalada no cliente.
DBPROP_INIT_LOCATION O provedor OLE DB do SQL Server Native Client retorna DB_S_ERRORSOCCURRED em uma tentativa de definir o valor da propriedade. O membro dwStatus da Estrutura DBPROP indica DBPROPSTATUS_NOTSUPPORTED.
DBPROP_INIT_MODE O provedor OLE DB do SQL Server Native Client retorna DB_S_ERRORSOCCURRED em uma tentativa de definir o valor da propriedade. O membro dwStatus da Estrutura DBPROP indica DBPROPSTATUS_NOTSUPPORTED.
DBPROP_INIT_PROMPT O provedor OLE DB do SQL Server Native Client dá suporte a todos os modos de solicitação para inicialização da fonte de dados. O provedor OLE DB do SQL Server Native Client usa DBPROMPT_NOPROMPT como sua configuração padrão para a propriedade.
DBPROP_INIT_PROTECTION_LEVEL O provedor OLE DB do SQL Server Native Client não oferece suporte a um nível de proteção em conexões com instâncias do SQL Server.

O provedor OLE DB do SQL Server Native Client retorna DB_S_ERRORSOCCURRED em uma tentativa de definir o valor da propriedade. O membro dwStatus da Estrutura DBPROP indica DBPROPSTATUS_NOTSUPPORTED.
DBPROP_INIT_PROVIDERSTRING Consulte a cadeia de caracteres do provedor OLE DB do SQL Server Native Client mais adiante neste tópico.
DBPROP_INIT_TIMEOUT O provedor OLE DB do SQL Server Native Client retornará um erro na inicialização se uma conexão com a instância do SQL Server não puder ser estabelecida dentro do número de segundos especificado.

No conjunto de propriedades específicas do provedor DBPROPSET_SQLSERVERDBINIT, o provedor OLE DB do SQL Server Native Client define essas propriedades de inicialização adicionais.

ID da propriedade Descrição
SSPROP_AUTH_OLD_PASSWORD Tipo: VT_BSTR

L/G: Gravar

Padrão: VT_EMPTY

Descrição: A senha atual ou expirada. Confira mais informações em Alterar senhas programaticamente.
SSPROP_INIT_APPNAME Tipo: VT_BSTR

L/G: Leitura/gravação

Descrição: O nome do aplicativo cliente.
SSPROP_INIT_AUTOTRANSLATE Tipo: VT_BOOL

L/G: Leitura/gravação

Padrão: VARIANT_TRUE

Descrição: Conversão de caractere OEM/ANSI.

VARIANT_TRUE: O provedor OLE DB do SQL Server Native Client converte cadeias de caracteres ANSI enviadas entre o cliente e o servidor convertendo por meio de Unicode para minimizar problemas na correspondência de caracteres estendidos entre as páginas de código no cliente e no servidor:

Os dados de DBTYPE_STR do cliente enviados para uma instância de char, varchar ou variável de texto, parâmetro ou coluna do SQL Serversão convertidos de caractere para Unicode usando a ACP (página de código ANSI) do cliente e, em seguida, convertidos de Unicode para caractere usando o ACP do servidor.

Os dados char, varchar ou text do SQL Server enviados a uma variável DBTYPE_STR do cliente são convertidos de caractere em Unicode usando a ACP do servidor e, em seguida, convertidos de Unicode em caractere usando a ACP do cliente.

Essas conversões são executadas no cliente pelo provedor OLE DB do SQL Server Native Client. Isto requer que a mesma ACP usada no servidor esteja disponível no cliente.

Estas configurações não têm nenhum efeito nas conversões que ocorrem para estas transferências:

Dados de cliente de DBTYPE_WSTR Unicode enviados para char, varchar ou text no servidor.

Dados de servidor char, varchar ou text enviados para uma variável DBTYPE_WSTR Unicode no cliente.

Dados de cliente DBTYPE_STR ANSI enviados a nchar, nvarchar ou ntext Unicode no servidor.

Dados de servidor char, varchar ou text Unicode enviados para uma variável DBTYPE_STR de ANSI no cliente.

VARIANT_FALSE: O provedor OLE DB do SQL Server Native Client não executa traduções de caracteres.

O provedor OLE DB do SQL Server Native Client não converte o caractere ANSI do cliente DBTYPE_STR os dados enviados para variáveis char, varchar ou de texto , parâmetros ou colunas no servidor. Nenhuma conversão é executada nos dados char, varchar ou text enviados do servidor a variáveis DBTYPE_STR no cliente.

Se o cliente e a instância do SQL Server estiverem usando ACPs diferente, os caracteres estendidos poderão ser interpretados incorretamente.
SSPROP_INIT_CURRENTLANGUAGE Tipo: VT_BSTR

L/G: Leitura/gravação

Descrição: Um nome de idioma SQL Server. Identifica o idioma usado para seleção de mensagem de sistema e formatação. O idioma deve estar instalado no computador que executa uma instância do SQL Server ou a inicialização da fonte de dados falhará.
SSPROP_INIT_DATATYPECOMPATIBILITY Tipo: VT_UI2

L/G: Leitura/gravação

Padrão: 0

Descrição: Habilita a compatibilidade de tipo de dados entre os aplicativos SQL Server e ActiveX Data Object (ADO). Se o valor padrão 0 for usado, a manipulação do tipo de dados assumirá como padrão aquele usado pelo provedor. Se o valor 80 for usado, a manipulação do tipo de dados usará apenas os tipos de dados do SQL Server 2000 (8.x). Para obter mais informações, consulte Usando o ADO com o SQL Server Native Client.
SSPROP_INIT_ENCRYPT Tipo: VT_BOOL

Leitura/gravação: leitura/gravação

Padrão: VARIANT_FALSE

Descrição: Para criptografar os dados aceitos na rede, a propriedade SSPROP_INIT_ENCRYPT é definida como VARIANT_TRUE.

Se a opção Habilitar Criptografia de Protocolo estiver ativada, a criptografia sempre ocorrerá, independentemente da configuração de SSPROP_INIT_ENCRYPT. Se estiver desativada e a propriedade SSPROP_INIT_ENCRYPT for definida como VARIANT_TRUE, a criptografia ocorrerá.

Se Habilitar Criptografia de Protocolo estiver desativada e SSPROP_INIT_ENCRYPT for definida como VARIANT_FALSE, nenhuma criptografia ocorrerá.
SSPROP_INIT_FAILOVERPARTNER Tipo: VT_BSTR

L/G: Leitura/gravação

Descrição: Especifica o nome do parceiro de failover para espelhamento de banco de dados. Ela é uma propriedade de inicialização e pode ser definida somente antes da inicialização. Depois da inicialização, ela retornará o parceiro de failover, se houver, retornado pelo servidor primário.

Isto permite que um aplicativo inteligente armazene em cache o servidor de backup determinado mais recentemente, mas esses aplicativos devem saber que as informações são atualizadas somente depois que a conexão é estabelecida pela primeira vez (ou redefinida, se estiver inserida em pool) e podem ficar desatualizadas em conexões de longo prazo.

Depois de estabelecer a conexão, o aplicativo pode consultar este atributo para determinar a identidade do parceiro de failover. Se o servidor primário não tiver nenhum parceiro de failover, esta propriedade retornará uma cadeia de caracteres vazia. Para obter mais informações, confira Usando o espelhamento de banco de dados.
SSPROP_INIT_FILENAME Tipo: VT_BSTR

L/G: Leitura/gravação

Descrição: Especifica o nome do arquivo primário de um banco de dados anexável. Esse banco de dados é anexado e torna-se o banco de dados padrão da conexão. Para usar SSPROP_INIT_FILENAME, você deve especificar o nome do banco de dados como o valor da propriedade de inicialização DBPROP_INIT_CATALOG. Se o nome do banco de dados não existir, este procedimento procurará o nome do arquivo primário especificado em SSPROP_INIT_FILENAME e anexará esse banco de dados ao nome especificado em DBPROP_INIT_CATALOG. Se o banco de dados tiver sido anexado previamente, o SQL Server não o anexará novamente.
SSPROP_INIT_MARSCONNECTION Tipo: VT_BOOL

L/G: Leitura/gravação

Padrão: VARIANT_FALSE

Descrição: Especifica se os MARS (Vários Conjuntos de Resultados Ativos) estão habilitados para a conexão. Esta opção deve ser definida como verdadeira antes de uma conexão com o banco de dados ser estabelecida. Para obter mais informações, consulte Usando MARS (vários conjuntos de resultados ativos).
SSPROP_INIT_NETWORKADDRESS Tipo: VT_BSTR

L/G: Leitura/gravação

Descrição: O endereço de rede do servidor que executa uma instância do SQL Server especificada pela propriedade DBPROP_INIT_DATASOURCE.
SSPROP_INIT_NETWORKLIBRARY Tipo: VT_BSTR

L/G: Leitura/gravação

Descrição: O nome do networklibrary (DLL) usado para comunicação com uma instância do SQL Server. O nome não deve incluir o caminho ou a extensão de nome de arquivo .dll.

O padrão pode ser personalizado usando o Utilitário de Configuração do Cliente SQL Server.

Observação: Somente os protocolos TCP e Pipes Nomeados são aceitos por esta propriedade. Se você usar essa propriedade com um prefixo, acabará com um prefixo duplo que resultará em erro, pois a propriedade é usada para gerar um prefixo internamente.
SSPROP_INIT_PACKETSIZE Tipo: VT_I4

L/G: Leitura/gravação

Descrição: Um tamanho de pacote de rede em bytes. O valor da propriedade de tamanho de pacote deve estar entre 512 e 32.767. O tamanho padrão do pacote de rede do provedor OLE DB do SQL Server Native Client é 4.096.
SSPROP_INIT_TAGCOLUMNCOLLATION Tipo: BOOL

Leitura/gravação: gravação

Padrão: FALSE

Descrição: É usado durante uma atualização de banco de dados quando são usados cursores do lado de servidor. Esta propriedade marca os dados com informações de ordenação obtidas do servidor, em vez da página de códigos no cliente. Atualmente, esta propriedade só é usada pelo processo de consulta distribuída porque ele sabe a ordenação de dados de destino e converte-os corretamente.
SSPROP_INIT_TRUST_SERVER_CERTIFICATE Tipo: VT_BOOL

L/G: Leitura/gravação

Padrão: VARIANT_FALSE

Descrição: Usada para habilitar ou desabilitar a validação de certificado do servidor. Esta propriedade é de leitura/gravação, mas uma tentativa de defini-la depois que uma conexão foi estabelecida resultará em um erro.

Essa propriedade será ignorada se o cliente for configurado para exigir validação de certificado. Entretanto, um aplicativo poderá usá-la juntamente com SSPROP_INIT_ENCRYPT para garantir que sua conexão com o servidor seja criptografada, mesmo se o cliente estiver configurado para não solicitar criptografia e nenhum certificado for provisionado no cliente.

Aplicativos cliente podem consultar esta propriedade depois que uma conexão foi aberta para determinar as configurações efetivas de criptografia e validação em uso.

Observação: O uso da criptografia sem validação de certificado fornece proteção parcial contra a detecção de pacote, mas não protege contra ataques a intermediários. Ela simplesmente permite criptografar o logon e os dados enviados ao servidor sem validar o certificado do servidor.

Para obter mais informações, confira Usando criptografia sem validação.
SSPROP_INIT_USEPROCFORPREP Tipo: VT_I4

L/G: Leitura/gravação

Padrão: SSPROPVAL_USEPROCFORPREP_ON

Descrição: o uso do procedimento armazenado SQL Server. Define o uso de procedimentos armazenados temporários do SQL Server para dar suporte à interface ICommandPrepare. Esta propriedade era significativa apenas na conexão ao SQL Server 6.5. A propriedade é ignorada para versões posteriores.

SSPROPVAL_USEPROCFORPREP_OFF: um procedimento armazenado temporário não é criado quando um comando está preparado.

SSPROPVAL_USEPROCFORPREP_ON: um procedimento armazenado temporário é criado quando um comando está preparado. Os procedimentos armazenados temporários são descartados quando a sessão é liberada.

SSPROPVAL_USEPROCFORPREP_ON_DROP: um procedimento armazenado temporário é criado quando um comando está preparado. O procedimento é removido quando o comando não está preparado com ICommandPrepare::Unprepare, quando um novo comando é especificado para o objeto do comando com ICommandText::SetCommandText ou quando todas as referências do aplicativo ao comando são liberadas.
SSPROP_INIT_WSID Tipo: VT_BSTR

L/G: Leitura/gravação

Descrição: uma cadeia de caracteres que identifica a estação de trabalho.

No conjunto de propriedades específicas do provedor DBPROPSET_SQLSERVERDATASOURCEINFO, o provedor OLE DB do SQL Server Native Client define as propriedades adicionais; consulte Propriedades de informações da fonte de dados para obter mais informações.

A cadeia de caracteres do provedor OLE DB do SQL Server Native Client

O provedor OLE DB do SQL Server Native Client reconhece uma sintaxe semelhante a ODBC em valores de propriedade de cadeia de caracteres do provedor. A propriedade da cadeia de caracteres do provedor é fornecida como o valor da propriedade de inicialização do OLE DB DBPROP_INIT_PROVIDERSTRING quando uma conexão é estabelecida com a fonte de dados do OLE DB. Essa propriedade especifica os dados de conexão específicos do provedor OLE DB necessários para implementar uma conexão com a fonte de dados do OLE DB. Dentro da cadeia de caracteres, os elementos são delimitados usando um ponto-e-vírgula. O elemento final na cadeia de caracteres deve terminar com um ponto-e-vírgula. Cada elemento consiste em uma palavra-chave, em um caractere de sinal de igual e no valor transmitido na inicialização. Por exemplo:

Server=MyServer;UID=MyUserName;  

Com o provedor OLE DB do SQL Server Native Client, o consumidor nunca precisa usar a propriedade de cadeia de caracteres do provedor. O consumidor pode definir qualquer propriedade de inicialização refletida na cadeia de caracteres do provedor usando propriedades de inicialização específicas do provedor OLE DB OLE DB ou SQL Server Native Client.

Para obter uma lista das palavras-chave disponíveis no provedor OLE DB do SQL Server Native Client, consulte Usando palavras-chave de cadeia de conexão com o SQL Server Native Client.

Confira também

Objetos de fonte de dados (OLE DB)