2010-07-01 35 views
3

我很感激以下問題的幫助:基於令牌的服務器訪問驗證與基礎結構錯誤而失敗

我已經在我們的SQL 2008服務器中創建的本地組並增加了兩個Windows用戶帳戶的「域\用戶名」我然後將本地組添加到數據庫並授予只讀訪問權限。

用戶正嘗試使用MS Access和ODBC連接來鏈接表並獲取以下錯誤。 用戶不是系統管理員。

日期6/30/2010下午1時01分54秒 登錄SQL服務器(電流 - 6/30/2010下午一時10分00秒) 源登錄 消息 登錄失敗,用戶「域\用戶名」 。原因:基於令牌的服務器訪問驗證因基礎結構錯誤而失敗。檢查以前的錯誤。 [客戶端:999.99.9.99] 日期6/30/2010下午1時01分54秒 登錄SQL服務器(電流 - 7/1/2010上午8點12分○○秒)

源登錄

消息 錯誤:18456,嚴重性:14,狀態:11

數據庫服務器: 的Windows Server 2008 R2企業 系統類型:64位操作系統 SQL Server 2008中

回答

0

這聽起來像一個問題w ^與您的AD服務器一起使用Kerberos/Windows身份驗證。我會檢查您的AD管理員,看他們是否可以幫助您解決這一問題。

1

謝謝你的迴應。

我解決了問題的原因。我只是希望日誌中的MS錯誤消息可以更清楚。具有日誌訪問問題的遠程用戶也是被拒絕訪問我們數據庫的組的一部分。我完全忽略了這種配置。然後我創建了一個不同的組,並授予用戶訪問權限。我也明確授予訪問權限,並且在這兩種情況下,用戶都被拒絕訪問。一旦我刪除拒絕訪問的組,它一切正常。

p.reinoso

+0

爲什麼不標記爲答案? – Kye 2013-10-17 05:13:35

0

這有可能有可能是一個SPN失蹤您正在使用連接到SQL Server服務帳戶。例如,如果您嘗試使用帳戶svcacct1從websrv1連接到sqlsrv1,則可以(使用域管理員帳戶)添加SPN以確保AD允許使用該帳戶從該機器進行身份驗證。

setspn -A MSSQLSvc/websrv1.domain.local:1433 svcacct1 
利用websrv1的svcacct1

現在,當您嘗試連接到sqlsrv1(與MS SQL認證),證書應該通過並允許服務器上進行驗證,而不會產生這個錯誤。

+0

我有一個類似的問題,我的答案解決了我的問題,但是,我發現你已經解決了你的問題。 – 2013-02-15 21:43:47

0

我的問題與佩德羅的(p.reinoso)有點不同。 在我設置的Windows域組中設置了管理DBA管理員對SQL服務器的訪問權限。一個人是MyDomain \ SQL_Admin組的成員,但其中一臺服務器上的個人SQL登錄已被禁用。 當我們刪除了SQL Login時,個人能夠根據組憑據進行連接。

0

我有這個問題,這是因爲用戶是父域的一部分,我只給了他們是訪問的一部分組(例如PARENT \ someGroup)。事實證明,該組織是「本地域」組織,而不是全球/通用組織。我的子域中的數據庫無法讀取父域中域本地組的標記。

0

我有同樣的問題:

登錄失敗,用戶基於令牌的服務器訪問驗證與基建錯誤

我只是忘了給權限讀取/寫入數據庫,該用戶失敗。我們爲我們的服務器上的每個網站創建一個用戶,並且權限較低的用戶需要讀取Web文件,其自己的應用程序池以及讀取器/寫入器對Sql Server中特定數據庫的訪問權限。我忘記了最後一步,並在日誌中得到了這個晦澀難懂的消息。添加這些權限解決了它。

0

當您使用舊服務器名稱(即服務器升級)重新命名新建的服務器時,此錯誤即將出現在以下類型的帳戶YourDomaninName \ ServerName $中。 要解決此問題,您將需要將用戶放到所有映射數據庫中,放棄登錄,創建登錄並最終再次向數據庫授予權限。

步驟1.腳本營造登錄(必須使用腳本,因爲這類型的用戶是不可搜索)

CREATE LOGIN [YourDomaninName\ServerName$] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]; 

第2步:請記下用戶可以訪問和授予數據庫權限,然後從每個數據庫中刪除用戶。

USE MyDatabase; 
IF EXISTS (SELECT * FROM sys.DATABASE_principals WHERE name = N'YourDomaninName\ServerName$') 
DROP USER [YourDomaninName\ServerName$]; 

第3步:刪除從服務器的登錄

USE [Master]; 
IF EXISTS (SELECT * FROM sys.server_principals WHERE name = N'YourDomaninName\ServerName$') 
DROP LOGIN [YourDomaninName\ServerName$] 

步驟4.創建與先前創建的

CREATE LOGIN [YourDomaninName\ServerName$] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]; 

步驟5.授予權限,從每個數據庫腳本登錄步驟2中記錄的筆記。此步驟可以通過SSMS手動完成。

相關問題