Sql-Server

訪問 - SQL Server:無法生成 SSPI 上下文

  • January 26, 2017

我實際上理解為什麼會彈出此錯誤消息,但我不知道如何實施我的解決方案。

有一個 SQL Server 網路實例,我提供一些 MS Access 表單與之互動,我自己沒有連接問題。這是因為在伺服器和數據庫中,我實際上註冊的使用者名和密碼與我自己的 PC 相同,所以 kerberos 身份驗證工作得非常好……直到我與其他人共享 Access 文件,然後他們得到這個錯誤(因為他們的本地使用者未在伺服器和/或數據庫中註冊)

問題是,我不希望程序使用客戶端本地使用者和密碼來驗證連接(或一起使用 kerberos 服務),而是使用數據庫本地使用者和密碼。我最初使用 ODBC 呼叫將遠端錶鍊接到 Access,提供數據庫本地使用者和密碼(與我的憑據不同),我希望它保持這種方式(或足夠相似),以便其他人可以打開表單並進行互動與他們一起使用數據庫本地憑據。

我只是不知道如何解決這個問題。請幫忙 :’(

發布前最後一分鐘更新:彈出此錯誤後,系統會提示使用者使用連接對話框,他們可以在其中編輯提供的使用者名和密碼以建立連接。所以問題實際上不是一堵牆,而是一個不舒服的細節。

但問題仍然存在:有沒有辦法讓它成為預設行為?

為什麼不能兩者兼得?

您看到的登錄螢幕是 SQL 伺服器拒絕登錄參數。

  1. 創建一個 OU 並將其標記為 SQLAccess 之類的名稱。將所有適當的使用者添加到 OU。
  2. 從那裡轉到 SSMS,將 OU 添加到適當的登錄名。
  3. 設置您的權限
  4. 創建一個 DSN(或使用目前)。當它說使用網路 ID 進行身份驗證時,請確保它已選中/冒泡。它使用目前使用者的憑據。

完成上述步驟後,當您的最終使用者打開訪問文件時,SQL 將在幕後搖晃,從而讓您的自定義登錄螢幕彈出…僅顯示 1 個登錄螢幕。此外,如果使用者離開公司,只需將其從 OU 中刪除,您就可以了(或停用帳戶)

理論上,您可以為每個特定使用者開發一個 DSN,並使用 SQL 登錄名指定登錄名,但這很乏味,當然除非您進行通用登錄名。我不推薦它,原因很明顯。

引用自:https://dba.stackexchange.com/questions/162296