A ideia aqui é realizar um salto duplo e delegar as credenciais do cliente ( [email protected]
), que foram enviadas ao SQL2.example.org
servidor para SQL3.example.org (reconhecidamente, este é um compartilhamento de arquivo SMB e não um SQL Server
)
Acredito que preciso delegar as credenciais para acessar o compartilhamento de arquivos, pois a mensagem de erro que recebo ao tentar acessar uma VIEW no SQL2 server que puxa de um Linked Server usando o VFPOLEDB Provider que aponta para o SMB Compartilhar no SQL3 ao se conectar com um cliente usando um esquema de autenticação KERBEROS sem a configuração de SPNs é:
OLE DB provider "VFPOLEDB" for linked server "LINKEDSERVERNAME" returned message "Invalid path or file name.".
Msg 7303, Level 16, State 1, Procedure hatsum, Line 5
Cannot initialize the data source object of OLE DB provider "VFPOLEDB" for linked server "LINKEDSERVERNAME".
Portanto, isso me leva a acreditar que um SPN nos computadores SQL2 e SQL3 na porta correta delegará as credenciais do cliente ao compartilhamento SMB. (Usando a delegação restrita , é claro...)
Alguma ideia de que tipo de configurações de delegação de computador SPN / AD eu preciso para fazer isso?
Observe que, ao conectar usando qualquer outro tipo de auth_scheme, seja NTLM ou SQL, consigo consultar o Linked Server sem problemas; mas ao usar o auth_scheme KERBEROS, ele gera a mensagem de erro acima.
Também sei que posso listar os SPNs que já estão definidos usandosetspn -l <server-name>
Há apenas um único tipo de nome principal de serviço necessário para o SQL Server.
Normalmente, é necessário implementar isso duas vezes, uma para o nome curto e outra para o nome longo. Se, por exemplo, o SQL Server for nomeado "SQLServer1.somedomain.com" e estiver sendo executado na porta 1433, você precisará:
A conta de computador
SQLServer1.somedomain.com
no Active Directory deve ter a capacidade de delegar segurança. Assim que estiver funcionando corretamente, você pode confirmar que a autenticação Kerberos está funcionando observando:Se isso aparecer
Kerberos
naauth_scheme
coluna, a autenticação Kerberos está funcionando. Se você tiver um segundo SQL Server na outra extremidade de um servidor vinculado, poderá executar essa consulta no servidor vinculado:A mensagem de erro me faz pensar que você está tendo um problema com as permissões de compartilhamento de arquivos - ao usar o Kerberos, o SQL Server irá representar você ao acessar o compartilhamento SMB - portanto, sua conta precisa acessá-lo.