คุณไม่ควรปิดใช้งานผู้ใช้ที่เป็นแขกใน msdb ฐานข้อมูลใน SQL Server

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 2539091 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

SQL Server Books Online แนะว่า คุณปิดใช้งานผู้ใช้ที่เป็นแขกในฐานข้อมูลทั้งหมดเป็นแนวทางปฏิบัติสำหรับการรักษาความปลอดภัยเซิร์ฟเวอร์ฐานข้อมูล คำแนะนำนี้นำไปใช้กับฐานข้อมูลระบบหลัก msdb และ tempb ในใบสั่งสำหรับคุณลักษณะบางอย่างของ Microsoft SQL Server เพื่อการทำงาน ผู้ใช้ที่เป็นแขกต้องดำเนินการ สามารถเปิดใช้งานในฐานข้อมูล msdb บทความนี้อธิบายถึงปัญหาบางอย่างที่คุณอาจพบได้ถ้าคุณปิดการใช้งานของผู้ใช้ที่เป็นแขกในฐานข้อมูล msdb บทความให้ข้อมูลเกี่ยวกับวิธีการแก้ไขปัญหาเหล่านั้น

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำแนะนำนี้ใน SQL Server Books Online แวะไปที่เว็บไซต์ของ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:

ข้อมูลเกี่ยวกับการจำกัดการเข้าถึงข้อมูลใน SQL Server

ข้อมูลเพิ่มเติม

อาการเมื่อผู้ใช้ที่เป็นแขกถูกปิดการใช้งานในฐานข้อมูล msdb

เมื่อผู้ใช้ที่เป็นแขกถูกปิดการใช้งานในฐานข้อมูล msdb คุณอาจได้รับข้อผิดพลาด 916เมื่ออย่างใดอย่างหนึ่งเกิดขยายโหนดของฐานข้อมูลในการจัดการ Studio หรือเมื่อเซิร์ฟเวอร์แอพลิเคชันเช่น OCS พยายามที่จะเชื่อมต่อกับ SQL Server คุณอาจพบอาการต่อไปนี้อย่างน้อยหนึ่งอย่างในสภาพแวดล้อมของคุณเมื่อเกิดปัญหานี้

Note ข้อความข้อผิดพลาดอาจแตกต่างเพียงเล็กน้อยไป ขึ้นอยู่กับสถานการณ์สมมติ อย่างไรก็ตาม สาเหตุพื้นฐานได้และจำเป็นอย่างยิ่งเหมือนกัน สาเหตุที่มีสิทธิ์ไม่เพียงพอในฐานข้อมูล msdb อาการที่สองก่อนเกิดขึ้นได้เมื่อวัตถุ Explorer พยายามที่จะแสดงสถานะของการจัดการขึ้นอยู่กับนโยบายของแต่ละฐานข้อมูล วัตถุ Explorer สิทธิของการเข้าสู่ระบบในปัจจุบันใช้การสอบถามฐานข้อมูล msdb สำหรับข้อมูลนี้ ซึ่งเป็นสาเหตุของข้อผิดพลาด

อาการที่ 1

ในแวดล้อม SQL Server 2008 และ SQL Server 2008 R2 เมื่อผู้ใช้ที่ไม่ใช่สมาชิกของ Sysadmin ที่ถาวรบทบาทเซิร์ฟเวอร์ใน SQL Server และไม่ทำ ให้คุณได้รับสิทธิ์ที่เหมาะสมใน msdb พยายามขยายโหนดการฐานข้อมูลหรือตัวเลือกใด ๆ ของโฟลเดอร์ภายใต้โหนดนั้น ได้รับข้อความแสดงข้อผิดพลาดที่คล้ายกับข้อมูลต่อไปนี้:

ล้มเหลวในการเรียกข้อมูลสำหรับการร้องขอนี้ (Microsoft.SqlServer.Manager.Sdk.Sfc)

รายละเอียดเพิ่มเติม:

ข้อยกเว้นเกิดขึ้นในขณะที่ดำเนินการกับคำชี้แจงของฟังก์ชัน Transact SQL หรือชุด

(Microsoft.SqlServer.ConnectionInfo)

หลักของเซิร์ฟเวอร์<servername>จะไม่สามารถเข้าถึงฐานข้อมูล "msdb" ภายใต้บริบทการรักษาความปลอดภัยปัจจุบัน (Microsoft SQL Server ข้อผิดพลาด: 916)</servername>

หมายเหตุ ขยายโหนดการฐานข้อมูลเป็นเพียงหนึ่งในกิจกรรมที่ต้องการเชื่อมต่อการอนุญาตสำหรับบัญชี guest ไปยังฐานข้อมูล msdb มีข้อผิดพลาดที่คล้ายคลึงกันอาจเกิดขึ้นได้กับกิจกรรมใด ๆ ที่ต้องการเข้าถึงฐานข้อมูล msdb น้อยน้อยที่สุด

อาการที่ 2

ใน SQL Server 2005 เมื่อผู้ใช้ที่ไม่ได้เป็นสมาชิกของ Sysadmin ที่ถาวรบทบาทเซิร์ฟเวอร์ใน SQL Server และผู้ไม่มิฉะนั้นจะได้รับสิทธิ์ที่เหมาะสมใน msdb สามารถขยายโหนดการฐานข้อมูล อย่างไรก็ตาม เมื่อผู้ใช้พยายามที่จะเรียกดูคุณสมบัติของฐานข้อมูล ได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

ไม่สามารถแสดงการโต้ตอบที่ร้องขอ

รายละเอียดเพิ่มเติม:
ไม่สามารถแสดงการโต้ตอบที่ร้องขอ (SqlMgmt)
ข้อยกเว้นเกิดขึ้นในขณะที่ดำเนินการกับคำชี้แจงของฟังก์ชัน Transact SQL หรือชุด (Microsoft.SqlServer.ConnectionInfo)
หลักการเซิร์ฟเวอร์ ชื่อหลัก จะไม่สามารถเข้าถึงฐานข้อมูล "msdb" ภายใต้บริบทการรักษาความปลอดภัยปัจจุบัน (Microsoft SQL Server ข้อผิดพลาด: 916)

หมายเหตุ ข้อความแสดงข้อผิดพลาดเกิดขึ้นได้แม้ว่าผู้ใช้ที่เป็นสมาชิกของบทบาท dbo ในฐานข้อมูลนั้น

อาการ 3

Microsoft Office การสื่อสาร Server 2007 (OCS 2007) เป็นหนึ่งในผลิตภัณฑ์ได้รับผลกระทบจากปัญหานี้  บริการส่วน front-end ไม่เริ่มทำงานเมื่อคุณพยายามเริ่มการทำงานของเซิร์ฟเวอร์ นอกจากนี้ คุณเห็นข้อความแสดงข้อผิดพลาดต่อไปนี้ในตัวแสดงเหตุการณ์:

ชนิดเหตุการณ์: ข้อผิดพลาด
แหล่งที่มาของเหตุการณ์: บริการของผู้ใช้ OCS
ประเภทเหตุการณ์: (1006)
รหัสเหตุการณ์: 30962
วัน: วัน
เวลา: เวลา
ผู้ใช้: n/A
คอมพิวเตอร์: Computer_name
คำอธิบาย: การเชื่อมต่อกับฐานข้อมูลส่วนหลังเสร็จเรียบร้อย แต่ไม่สามารถดำเนินการขั้นตอนการลงทะเบียนที่ถูกจัดเก็บไว้ข้างหลังสุดท้าย ข้อผิดพลาดนี้ไม่ควรเกิดขึ้นภายใต้เงื่อนไขการดำเนินการปกติ ติดต่อฝ่ายสนับสนุนผลิตภัณฑ์
เซิร์ฟเวอร์แบ็คเอนด์: Server_name ฐานข้อมูล: rtc ข้อผิดพลาด Sql ในท้องถิ่น: 916 สายอักขระเชื่อมต่อของ: โปรแกรมควบคุม = {SQL Native Client };Trusted_Connection = yesAutoTranslate = no; server =Server_nameฐานข้อมูล = rtc
สาเหตุ: สุดปัญหากับฐานข้อมูลแบ็คเอนด์
ความละเอียด:
ให้แน่ใจไว้ข้างหลังสุดท้ายทำงานได้อย่างถูกต้อง
ดูข้อมูลเพิ่มเติม Help and Support Center ที่ http://go.microsoft.com/fwlink/events.asp.

สำหรับข้อมูลเพิ่มเติม ให้ดูเธรดในฟอรัมการสนับสนุน OCS ดังต่อไปนี้:

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

วิธีการตรวจสอบปัญหา

เมื่อต้องการตรวจสอบว่า ผู้ใช้ที่เป็นแขกถูกกำหนดค่าไว้อย่างถูกต้องในฐานข้อมูล msdb เรียกใช้แบบสอบถามต่อไปนี้เป็นสมาชิกของหน้าที่ถาวรของเซิร์ฟเวอร์:

USE msdb;

SELECT prins.name AS grantee_name, perms.*

FROM sys.database_permissions AS perms

JOIN sys.database_principals AS prins

ON perms.grantee_principal_id = prins.principal_id

WHERE prins.name = 'guest' AND perms.permission_name = 'CONNECT';

GO

หากคุณได้รับข้อความแสดงชุดผลลัพธ์ ที่คล้ายกับด้านล่าง guest ผู้ใช้มีสิทธิ์ที่จำเป็น
ยุบตารางนี้ขยายตารางนี้
grantee_nameคลาสclass_descmajor_idminor_idgrantee_principal_idgrantor_principal_idชนิดpermission_nameสถานะstate_desc
guest0ฐานข้อมูล0021เพื่อนร่วมเชื่อมต่อGให้สิทธิ

หากคุณได้รับข้อความแสดงข้อชุดผลลัพธ์ที่ว่างเปล่า หรือถ้า state_desc แสดงปฏิเสธในชุดการผลลัพธ์ข้างต้น ผู้ใช้ที่เป็นแขกถูกปิดการใช้งานในฐานข้อมูล msdb คุณอาจได้รับข้อผิดพลาดที่ 916 เมื่อคุณเชื่อมต่อไปยังฐานข้อมูล

วิธีการแก้ปัญหานี้ได้

เมื่อต้องการแก้ปัญหา รันแบบสอบถามต่อไปนี้ใน Studio จัดการของ SQL Server เป็นสมาชิกของ sysadmin ที่ถาวรบทบาทเซิร์ฟเวอร์:

USE msdb;

GRANT connect TO guest;

GO

 

คุณสมบัติ

หมายเลขบทความ (Article ID): 2539091 - รีวิวครั้งสุดท้าย: 22 กรกฎาคม 2554 - Revision: 4.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 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
Keywords: 
kbsurveynew kbexpertiseadvanced kbtshoot kbprb kbmt KB2539091 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2539091

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com