Errore sspi context

di il
9 risposte

Errore sspi context

La connessione a SQL server in una LAN fallisce con errore The Target Principal Name Is Incorrect. Cannot Generate SSPI Context (SQL  Server). L'accesso al, server riesce se:

1) la connessione avviene con un utente NON Microsoft , sia in locale che da pc remoto in LAN

2) la connessione avviene con utente Microsoft in locale

La connessione fallisce con l'errore suindicato quando ci si prova a connettere con un utente Microsoft da remoto. Nella rete non si fa uso di domain, tutti i pc sono in WORKGROUP. 

Ho provato a seguire qualche consiglio trovato in rete, ma vista la semplice organizzazione che abbiamo mi sembra tutto enormemente complicato. C'è qualcosa che dovrei sistemare, magari nelle regole di accesso al server?

9 Risposte

  • Re: Errore sspi context

    Installa sql server in mixer mode, poi crea un utente e password abilitato al DB e usa quello

  • Re: Errore sspi context

    OK, sqlserver era già installato in  mixed mode (presumo si intenda accesso sia  con windows trusted connection che con credenziali sql). Non avevo pensato a questa possibilità, in effetti relinkando tutte le tabelle con un nuovo data source con trusted connection = no , uid=USERID, pwd=Password etc. etc. la connessione avviene in ogni caso. La conclusione è che non si può usare trusted connection con utenti microsoft? Non ci sarei mai arrivato, pensavo fosse qualcosa di sbagliato nelle imposrtazioni. Grazie della dritta.

  • Re: Errore sspi context

    Per un accesso trusted senza problemi usa un dominio Actibe Directory

  • Re: Errore sspi context

    17/02/2025 - roberto21 ha scritto:

    OK, sqlserver era già installato in  mixed mode (presumo si intenda accesso sia  con windows trusted connection che con credenziali sql). Non avevo pensato a questa possibilità, in effetti relinkando tutte le tabelle con un nuovo data source con trusted connection = no , uid=USERID, pwd=Password etc. etc. la connessione avviene in ogni caso. La conclusione è che non si può usare trusted connection con utenti microsoft? Non ci sarei mai arrivato, pensavo fosse qualcosa di sbagliato nelle imposrtazioni. Grazie della dritta.

    salve Roberto,

    un "utente Microsoft" NON E' un utente autenticato dal domain controller, e la Windows Authentication e' utilizzabile (da "remoto") tendenzialmente SOLO tramite domain controller... delle volte ci si riesce anche tramite "giochino" di account impersonation, creando cioe' un utente "identico" a quello remoto anche sulla macchina sulla quale sia installato SQL Server, ma spesso fallisce anche questo...

    quindi, come ti hanno detto, usa un account standard SQL Server e mixed mode authentication...

    salutoni romagnoli
    -- 
    Andrea

  • Re: Errore sspi context

    Grazie a tutti per le spiegazioni, come dico sempre non si finisce mai di imparare. In questo caso io, layman o uomo della strada, pensavo che un utente Microsoft fosse by definition più trusted in casa windows di un utente "normale"....  e invece non funziona così. Grazie ancora.

  • Re: Errore sspi context

    Hai fatto un equivoco sul termine trusted che non riguarda la marca del sistema operativo ma una caratteristica di sicurezza dell'utente.

    L'utente windows del mio PC non è trusted rispetto al tuo sistema Windows, non perchè è un utente Windows io posso accedere al tuo PC.

    Quando ci si mette al lavoro con strumenti complessi, bisogna avere un minimo di preparazione generale oltre che specifica su tanti argomenti che girano intorno al prodotto. Altrimenti ci si blocca ad ogni passo.

  • Re: Errore sspi context

    Devo purtroppo tornare sull'argomento, perchè non tutto è andato a posto. 

    Usando l'accesso al database con userid e password (credenziali sql server), l'errore di connessione effettivamente sparisce. La mia app in access però in questo caso fallisce in una semplice procedura di stampa. La procedura effettua un mailmerge mettendo i dati di un record in un file word, e lo manda in stampa. Questa  procedura funziona perfettamente con la connessione con credenziali windows (utente non microsoft), ma fallisce con la connessione con credenziali sqlserver con l'errore

    Sub PrintLetter2(NumeroTessera As Double)
    'Mail merge e stampa su stampante scelta nel dial0ogo
    'On Error GoTo ErrorHandler
    
    ' open template in Word
    Dim filepath As String
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
    Dim strConnection As String, myquery As String
    Dim bPrintBackgroud As Boolean
    Dim oMerged As Document
    
    Set WordApp = New Word.Application
    filepath = CurrentProject.path
    Debug.Print filepath, NumeroTessera
    With WordApp
        .Visible = True
        Set WordDoc = .Documents.Open(filepath & "\LetteraNuoviSoci.docx")
    End With
    'MailMerge selected records from table to Word document
    myquery = "SELECT * FROM [LibroSoci] WHERE [Numero tessera] = " & NumeroTessera
    With WordApp
        .ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
        .ActiveDocument.MailMerge.OpenDataSource _
    
            Name:=filepath & "\RicevuteConPrimaNotaFE.accdb", _
    
            ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
    
            AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
    
            WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
    
            Format:=wdOpenFormatAuto, Connection:="RicevuteCPNCompleto", _
    
            SQLStatement:=myquery, SQLStatement1:="", _
    
            SubType:=wdMergeSubTypeOther
    
           
    
            bPrintBackgroud = .Options.PrintBackground
            .Options.PrintBackground = False
            .Application.DisplayAlerts = wdAlertsNone
            
       With .ActiveDocument.MailMerge
                  
            .Destination = wdSendToNewDocument
            .SuppressBlankLines = True
            
            With .DataSource
                .FirstRecord = wdDefaultFirstRecord
                .LastRecord = wdDefaultLastRecord
            End With
            
            .Execute Pause:=False
        End With
               Set oMerged = .ActiveDocument
                'Show the Print dialog box
                .Visible = True
                .Activate
                    .Dialogs(wdDialogFilePrint).Show
                oMerged.Close 0
                'Restore all the alerts
                .Application.DisplayAlerts = wdAlertsAll
                Options.PrintBackground = bPrintBackgroud
    End With
    
    
    
    WordDoc.Close SaveChanges:=False
    WordApp.Quit
    
    ErrorHandlerExit:
    Exit Sub
    ErrorHandler:
    If Err = 429 Then
    'word is not running; open word with CreateObject
    Set appWord = CreateObject(Class:="Word.Application")
    End If
    
    End Sub
    

    e si ferma dopo aver caricato il file word. Ammetto l'ignoranza, ma non so che cosa guardare. C'è qualche differenza nei due casi riguardo la istruzione in giallo (dove il debugger si ferma senza ulteriori messagggi)? NOTA. il messaggio di login failed appare nella window del file word, non nella window di access.

    Non sono sicuro se questo post debba andare qui o lella sezione Access. Chiedo scusa in anticipo.

  • Re: Errore sspi context

    Dato che non si vede nessun colore giallo nel forum, indica esattamente in quale riga viene evidenziato l'errore

    Ma poi perchè usi un file accdb se hai a disposizione sql server per il tuo db?

  • Re: Errore sspi context

    Deve essere stato eliminato, perchè c'era. Comunque, l'istruzione incriminata è

     .ActiveDocument.MailMerge.OpenDataSource _

      Name:=filepath & "\RicevuteConPrimaNotaFE.accdb", _

       ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _      

      AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _      

      WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _      

      Format:=wdOpenFormatAuto, Connection:="RicevuteCPNCompleto", _       

     SQLStatement:=myquery, SQLStatement1:="", _       

     SubType:=wdMergeSubTypeOther

    *************************************************************************

    "Ma poi perchè usi un file accdb se hai a disposizione sql server per il tuo db?"

    Mi si perdoni l'ignoranza, ma ti dispiacerebbe elaborare un po' il concetto? A che ti riferisci? Al parametro "Name"? E che ci dovrei mettere invece?

Devi accedere o registrarti per scrivere nel forum
9 risposte