無法使用 Active Directory 或 SQL 驗證登入 SQL

無法使用 Active Directory 或 SQL 驗證登入 SQL

我正在安裝 SQL 報告服務。安裝後,資料庫已正確建立並指派了使用者權限。也會建立登入網域\報表帳戶。問題是當我嘗試從 Visual Studio 連線時,我想使用相同的帳戶,但是當我嘗試使用不同類型的身份驗證時出現問題:

Windows 驗證,未選擇帳戶> 確定,它使用我的帳戶登入伺服器。

SQL認證> 網域\reportaccount > 使用者「網域\reportaccount」登入失敗(如果我使用我的帳戶,它也會失敗)

Active Directory 密碼驗證> 網域\reportaccount > 使用者「登入失敗。(如果我使用我的帳戶,它也會失敗)

Active Directory 整合式驗證,未選擇帳戶 > 可以

Active Directory 互動式驗證, 網域\報表帳號 > 不要求輸入密碼

我想我應該使用 SQL 身份驗證或 Active Directory 整合式身份驗證。

我的問題是,如果建立了登入名稱並且資料庫中有正確的權限,為什麼會失敗?

答案1

首先,我在谷歌上搜尋了“Active Directoy 密碼身份驗證”,因為我從未聽說過它。什麼事也沒發生,但出現的是:

天藍色Active Directory 密碼驗證”

那麼,這些是錯字嗎?我將在假設它們是的情況下運行並解釋它們:

Windows 驗證- 這是有效的,因為您登入電腦的帳戶具有存取權限。

SQL認證- 這是很常見的誤解。由於系統會要求您提供使用者名稱和密碼,因此大多數人認為他們可以在此輸入自己的 Windows 帳戶,但事實並非如此。 SQL 有它自己的 INTERNAL 使用者資料庫,當您使用 SQL 驗證時,它會在 SQL 本身而不是 AD 中尋找使用者。您還沒有在其中創建任何用戶。例如,在 SQL Studio 中查看“使用者”,然後您將能夠建立一個SQL那裡的「用戶」。使用這種類型的身份驗證時,您必須使用此使用者。 Windows 或 AD 帳戶將無法使用。

天藍色Active Directory 密碼驗證- Azure AD 與普通 AD 不同。它有自己的 AD 用戶(與本地 AD 上的用戶不同)。 Microsoft 正在將“Azure AD”重命名為“Azure Entra”,因為人們認為它與本地 AD 相同,但事實並非如此,這會造成混亂。

其他方法也是如此,我假設它們前面都有 Azure(根據我剛才在網路上讀到的內容)

答案2

如果您選擇 Windows 驗證(登入 Windows 時基本上會自動進行),那麼 Active Directory 中的電腦和登入後 Active Directory 中的使用者帳戶之間就會存在信任關係。

我認為在您的使用者帳戶下使用其他 Windows 憑證登入時不會取得任何成功,至少不會從 MS 產品登入。您會發現,當授權其他用戶查看您的報告時,Edge、IE 和其他 MS 產品會自動「了解」登入用戶,並且此資訊決定他們有權訪問哪些資產以及他們擁有哪些這些資產。

要透過Visual Studio 存取SSRS(報告服務),您可以使用網域\reportacct 帳戶登入您的計算機,或在SQL Server Management Studio 的安全性下設定一個具有足夠權限的新登入名,然後將Visual Studio 切換到SQL Server 驗證並使用您建立的登入名稱。

相關內容