PRB: ข้อผิดพลาด 1314 ยกโดย xp_cmdshell เมื่อดำเนินเป็นผู้ใช้ของอเมริกาใต้ไม่ใช่

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

อาการ

คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อคุณกำลังใช้งานระบบปฏิบัติการผ่าน xp_cmdshell เมื่อเข้าสู่ระบบใน SQL Server เป็นบัญชี sa ไม่:
msg 50001 ระดับ 1 รัฐ 50001
xpsql.c: ข้อผิดพลาด 1314 จาก LogonUser บรรทัดและส่วนประกอบ 476
อีกวิธีหนึ่งคือ คุณอาจได้รับต่อไปนี้:
msg 50001 ระดับ 1 รัฐ 50001
xpsql.c: ข้อผิดพลาด 1314 จาก CreateProcessAsUser บรรทัดและส่วนประกอบ 492

สาเหตุ

ข้อผิดพลาดเหล่านี้ถูกยกกำลังเนื่องจากสิทธิ์ errant ของคุณตั้งค่าบัญชี SQLAgentCmdExec Windows NT ที่ MSSQLServer รันอยู่

การหลีกเลี่ยงปัญหา

ตรวจสอบให้แน่ใจว่า บัญชีผู้ใช้ Windows NT ที่บริการ MSSQLServer กำลังทำงานบน บัญชีโดเมนที่เป็นสมาชิกของกลุ่มผู้ดูแลท้องถิ่นที่อยู่บนเซิร์ฟเวอร์

ตรวจสอบให้แน่ใจว่า บัญชีผู้ใช้ที่บริการ MSSQLServer รันอยู่ ตลอดจน SQLServerAgent มีสิทธิ์สิทธิ์ของผู้ใช้ต่อไปนี้:
  • ทำหน้าที่เป็นส่วนหนึ่งของระบบปฏิบัติการ
  • เพิ่มโควต้า
  • แทนกระบวนการโทเค็นระดับ
  • เข้าสู่ระบบเป็นชุดงาน
ตรวจสอบให้แน่ใจว่า บัญชี SQLAgentCmdExec เครื่องมีสิทธิ์ใน "สู่เป็นชุดงาน"

หมายเหตุ:: คุณต้องเริ่มต้นเซิร์ฟเวอร์ที่ทั้งหมด ไม่อยู่ในบริการ SQL การเปลี่ยนแปลงใด ๆ เกิดขึ้นกับสิทธิ์สิทธิ์ของผู้ใช้จะมีผล

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

Xpsql.c ถูกรวมในตัวอย่างรหัสที่จัดส่งกับผลิตภัณฑ์ ข้อผิดพลาดบนบรรทัด 476 ได้รับการยกถ้าเรียกฟังก์ชัน Win32 API:LogonUser()ล้มเหลว ข้อผิดพลาดบน 492 ได้รับยกถ้าเรียกเพื่อ CreateProcessAsUser() ล้มเหลว

ข้อผิดพลาด 1314 คือ ERROR_PRIVILEGE_NOT_HELD บ่งชี้ว่า บัญชี invoking ฟังก์ชันเหล่านี้ไม่มีสิทธิ์ของผู้ใช้เพียงพอสำหรับการดำเนินการล็อกอิน ซึ่งแปลงลูกค้าจำนวนมากเพื่อตั้งค่าสิทธิ์ของบัญชีบนบัญชี SQLAgentCmdExec หรือสร้างใหม่ โดยตัวจัดการผู้ใช้ หรือตัวจัดการองค์กร SQL

อย่างไรก็ตาม สิ่งที่จะเพิ่มข้อผิดพลาดเหล่านี้คือ กระบวนการซึ่งเป็น invoking เรียก API (Sqlservr.exe) ดังนั้น จึงเป็นบัญชีที่เรียกใช้บริการ MSSQLServer ที่มีสิทธิ์ไม่ถูกต้อง และไม่เพียงพอ เพื่อที่ดำเนินการเสร็จเรียบร้อยแล้วLogonUser()บัญชี MSSQLServer ต้องมี SE_TCB_NAME (ดำเนินเป็นส่วนหนึ่งของระบบปฏิบัติการและส่วนประกอบ) ที่ด้านขวามีการเปิดใช้งาน เพื่อที่จะเรียกใช้ CreateProcessAsUser() เสร็จเรียบร้อยแล้ว บัญชี MSSQLServer จำเป็นต้องมีสิทธิ์ (เพิ่มโควต้า) SE_INCREASE_QUOTA_NAME ที่เปิดใช้งาน

หมายเหตุ:: บางตัวอย่างชนิดของกระบวนการ CreateProcessAsUser() อาจยังต้อง SE_ASSIGNPRIMARYTOKEN_NAME (แทนโทเค็นระดับกระบวน) เพื่อที่ถูกเปิดบน

คุณสมบัติ

หมายเลขบทความ (Article ID): 248391 - รีวิวครั้งสุดท้าย: 16 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Keywords: 
kbbug kbprb kbmt KB248391 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:248391

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

 

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