MSSQLSERVER_916
適用於:SQL Server
詳細資料
屬性 | 值 |
---|---|
產品名稱 | SQL Server |
事件識別碼 | 916 |
事件來源 | MSSQLSERVER |
元件 | SQLEngine |
符號名稱 | NOTUSER |
訊息文字 | 伺服器主體 %.*ls 無法在目前的安全性內容下存取資料庫%.*ls” |
說明
登入沒有足夠的許可權可連線到具名資料庫。 可以連線到這個 SQL Server 實例但資料庫中沒有特定許可權的登入會接收來賓用戶的許可權。 這是一項安全性措施,可防止某個資料庫中的用戶連線到沒有許可權的其他資料庫。 當來賓用戶沒有具名資料庫的 CONNECT 許可權且未設定可信任的屬性時,就會發生此錯誤訊息。 當來賓用戶沒有具名資料庫的 CONNECT 許可權時,就會發生此錯誤訊息。
當 msdb 資料庫的 CONNECT 許可權遭到拒絕或撤銷時,當 物件總管 嘗試顯示每個資料庫的原則式管理狀態時,SQL Server Management Studio 可能會收到此錯誤。 物件總管 會使用目前登入的許可權來查詢 msdb 資料庫以取得這項資訊,這會導致錯誤。 下列錯誤訊息也會發生:
無法擷取此要求的資料。 (Microsoft.SqlServer.Management.Sdk.Sfc)
使用者動作
警告
在規避此安全性措施之前,請務必清楚瞭解各種資料庫中的使用者。 下列方法可讓具有某個資料庫中許可權的用戶連線到其他資料庫,而其他資料庫可能會向惡意使用者公開數據。 啟用自主資料庫時,下列步驟可讓某個資料庫中的資料庫擁有者授與 SQL Server 實例上其他資料庫的存取權。
您可以使用下列其中一種方式來連線到資料庫:
授與具名資料庫的特定登入存取權。 下列範例會授與資料庫的登入
Adventure-Works\Larry
存取msdb
權。USE msdb ; GO GRANT CONNECT TO [Adventure-Works\Larry] ;
將 CONNECT 許可權授與來賓使用者錯誤訊息中名為的資料庫。 下列範例會為使用者
guest
授CONNECT
與資料庫的許可權msdb
。USE msdb ; GO GRANT CONNECT TO guest ;
在已驗證使用者的資料庫上啟用TRUSTWORTHY屬性。
ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON;