Sql-Server

SSMS 2016 強制連接

  • September 21, 2017

一些開發人員使用 SSMS 2016 對共享 SQL Server 上的數據庫具有 db_owner 權限,但錯誤日誌顯示嘗試登錄實例上的第一個使用者數據庫,但他們無權訪問。日誌錯誤是典型的 18456,但使用者沒有嘗試連接到該數據庫(我看過)。此外,在嘗試擴展數據庫文件夾時,SSMS 計時約 5-10 秒。一段時間後,伺服器上的所有數據庫都出現了。這不是使用 SSMS 2014 的問題。作為一種解決方法,我們授予“連接到所有數據庫”,對於在擴展數據庫文件夾時確實停止了日誌中的錯誤並消除延遲但似乎沒有的使用者喜歡長期解決方案。

這聽起來像是 SSMS 2016 錯誤或使用者權限嗎?有什麼想法嗎?

提前致謝,

TJ

預設 db 設置為具有 db_owner 權限的使用者數據庫。這已經在不同的伺服器上進行了測試,具有相同的登錄錯誤結果,並且登錄到第一個使用者數據庫。這是一個 AD 使用者。錯誤:18456,嚴重性:14,狀態:38

@sqlband 我可以確認這是 SSMS 2016 的錯誤(或功能)。

我能夠在 SSMS 版本中重現這一點Microsoft SQL Server Management Studio 13.0.16106.4

USE [master]
GO

CREATE LOGIN [ssmsspeed] WITH PASSWORD=N'ssmsspeed', DEFAULT_DATABASE=[WideWorldImporters], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [WideWorldImporters]
GO
CREATE USER [ssmsspeed] FOR LOGIN [ssmsspeed]
GO
USE [WideWorldImporters]
GO
ALTER ROLE [db_owner] ADD MEMBER [ssmsspeed]
GO

ssmsspeed現在使用登錄連接到 SSMS 。當我擴展數據庫節點時,擴展大約需要 10 秒,如 OP 所述。我可以在我的錯誤日誌和安全審計文件中看到這一點。

使用者 ‘ssmsspeed’ 的消息登錄失敗。原因:無法打開明確指定的數據庫“AdventureWorks2014”。

$$ CLIENT: $$ 錯誤:18456,嚴重性:14,狀態:38。

如果我按名稱列出我的使用者數據庫順序AdventureWorks2014是第一個。

  • AdventureWorks2014
  • GMODBA
  • 被黑
  • 測試
  • 倉庫
  • 世界進口商

我還通過將 Master 數據庫設置為Default_database相同的結果來測試這一點。

USE [master]
GO

CREATE LOGIN [ssmsspeed1] WITH PASSWORD=N'ssmsspeed1', DEFAULT_DATABASE=[Master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [WideWorldImporters]
GO
CREATE USER [ssmsspeed1] FOR LOGIN [ssmsspeed1]
GO
USE [WideWorldImporters]
GO
ALTER ROLE [db_owner] ADD MEMBER [ssmsspeed1]
GO

當我在進行相同的測試時,Microsoft SQL Server Management Studio 12.0.4100.1我無法重現這一點。擴展數據庫節點是即時的,並且錯誤日誌中沒有登錄失敗消息。

這是 SSMS 2016智能感知錯誤

這里報告了類似的行為:SSMS 16.5 - IntelliSense try to connect to offline databases

要擺脫它,只需禁用 Intellisense: Tools -> Options -> Text Editor -> Trasact-SQL -> IntelliSense- 取消選中Enable IntelliSense

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