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 許可權授與來賓使用者錯誤訊息中名為 的資料庫。 下列範例會為使用者 guestCONNECT 與資料庫的許可權 msdb

    USE msdb ;
    
    GO
    
    GRANT CONNECT TO guest ;
    
  • 在已驗證使用者的資料庫上啟用 TRUSTWORTHY 屬性。

    ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON;