您目前已離線,請等候您的網際網路重新連線

您應該停用在 msdb 資料庫中 SQL Server 的來賓使用者

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:2539091

結論
SQL Server 線上叢書 》 建議您在保護資料庫伺服器的最佳作法是停用來賓使用者在每個資料庫中。這項建議不適用於 tomaster、 msdb 和 tempb 系統資料庫。某些 Microsoft SQL Server 功能運作,要讓 guest 使用者,必須在 msdb 資料庫中啟用。本文說明如果您停用來賓使用者在 msdb 資料庫中的可能會遇到一些問題。本文也提供有關如何解決這些問題的資訊。

如需有關這項建議 SQL Server 線上叢書 》 中的詳細資訊,請造訪下列 Microsoft 開發人員網路 (MSDN) 網站:

限制對 SQL Server 中的資料存取的相關資訊

其他相關資訊

在 msdb 資料庫中停用 guest 使用者時的徵狀

在 msdb 資料庫中停用 guest 使用者時,您可能會收到錯誤訊息 916當在 Management Studio 任一個 [資料庫] 節點會展開或例如 OCS serverapplication 嘗試連線到 SQL Server.You 遇到一或多個您環境中的下列徵狀時就會發生這個問題。

N錯誤的文字稍微而異,視案例而定。不過,根本原因基本上都是一樣。原因是在 msdb 資料庫中的權限不足。物件總管] 中嘗試將顯示每個資料庫的原則基礎的管理狀態時,就會發生前兩個徵狀。物件總管會使用目前登入的權限來查詢 msdb 資料庫中的這項資訊,因而造成錯誤。

徵狀 1

在 SQL Server 2008年,以及 SQL Server 2008 R2 的環境下,不是 Sysadmin 固定伺服器角色,在 SQL Server 中,並且未以別的方式授與適當的權限在 msdb 中的成員的使用者嘗試展開 [資料庫] 節點或任何該節點下的資料夾時他們會收到類似下列的錯誤訊息:

無法擷取此要求的資料。() Microsoft.SqlServer.Manager.Sdk.Sfc

其他資訊:

執行異動性 SQL 陳述式或批次時發生例外狀況。

() Microsoft.SqlServer.ConnectionInfo

伺服器主體<Servername>不能存取資料庫的目前安全性內容下的 「 msdb 」。(Microsoft SQL Server,錯誤碼: 916)</Servername>

附註:展開 [資料庫] 節點只是其中一個 msdbdatabase 的來賓帳戶需要連接的權限的活動。使用任何需要至少最小存取 themsdb 資料庫的活動就會發生類似的錯誤。

徵狀 2

在 SQL Server 2005 時誰不是 Sysadmin 固定伺服器角色,在 SQL Server 中的成員和誰不否則授與適當的權限在 msdb 中的使用者,可以展開 [資料庫] 節點。然而,當使用者嘗試檢視的資料庫內容,他們會收到下列錯誤訊息:

無法顯示要求的對話方塊。

其他資訊:
無法顯示要求的對話方塊。() SqlMgmt
執行異動性 SQL 陳述式或批次時發生例外狀況。() Microsoft.SqlServer.ConnectionInfo
伺服器主體主體名稱不能存取資料庫的目前安全性內容下的 「 msdb 」。(Microsoft SQL Server,錯誤碼: 916)

附註:即使使用者是在該資料庫中的 dbo 角色的成員,就會發生的錯誤訊息。

徵狀 3

這個問題所影響的產品之一是 Microsoft Office 通訊 Server 2007 (OCS 2007)。當您嘗試啟動伺服器前端服務將不會啟動。此外,您會看到事件檢視器 」 中的下列錯誤訊息:

事件類型: 錯誤
事件來源: OCS 使用者服務
事件類別目錄: (1006)
事件識別碼: 30962
日期:日期
時間:時間
使用者:n/A
電腦:電腦名稱
描述: 後端資料庫的連線成功,但無法在後端執行預存的註冊程序。在正常操作的情況下應該不會發生此錯誤。請連絡產品支援。
後端伺服器: Server_name資料庫: rtc Sql 原生錯誤: 916 連接字串: 驅動程式 = {SQL 原生的用戶端}。Trusted_Connection = yes;AutoTranslate = no ; 伺服器 =Server_name; 資料庫 = rtc ;
原因: 可能有問題後端資料庫。
解決方法:
確認後端運作正常。
如需詳細資訊,請參閱說明及支援中心,在 http://go.microsoft.com/fwlink/events.asp.

如需詳細資訊,請參閱 OCS 支援論壇中的下列執行緒:

http://social.microsoft.com/Forums/en-US/communicationsserversetup/thread/8b428bd3-0509-4859-ac11-122bdbef06cc

如何判斷問題

如果要判斷 guest 使用者是否已正確設定在 msdb 資料庫中,執行下列查詢為 sysadmin 固定的伺服器角色的成員:

USE msdb;SELECT prins.name AS grantee_name, perms.*FROM sys.database_permissions AS permsJOIN sys.database_principals AS prinsON perms.grantee_principal_id = prins.principal_idWHERE prins.name = 'guest' AND perms.permission_name = 'CONNECT';GO

如果您收到結果集,如下所示,guest 使用者具有必要的權限。
grantee_name類別class_descmajor_idminor_idgrantee_principal_idgrantor_principal_id型別permission_name狀態state_desc
訪客0資料庫0021CO連線G授與

如果您收到空的結果集,或如果state_desc在結果中顯示拒絕設定,這裡所提及的 msdb 資料庫中的來賓使用者已停用。當您連線到資料庫時,您可能會收到錯誤 916。

如何解決這個問題

若要解決這個問題,請執行下列查詢在 SQL Server Management Studio sysadmin 固定伺服器角色的成員身分:

USE msdb;GRANT connect TO guest;GO


警告:本文為自動翻譯

內容

文章識別碼:2539091 - 最後檢閱時間:06/21/2014 15:53:00 - 修訂: 5.0

Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition

  • kbsurveynew kbexpertiseadvanced kbtshoot kbprb kbmt KB2539091 KbMtzh
意見反應