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

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

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้: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 (แทนโทเค็นระดับกระบวน) เพื่อที่ถูกเปิดบน

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 248391 - การตรวจสอบครั้งสุดท้าย: 12/05/2015 17:52:58 - ฉบับแก้ไข: 2.0

Microsoft SQL Server 6.5 Standard Edition, Microsoft SQL Server 7.0 Standard Edition

  • kbnosurvey kbarchive kbbug kbprb kbmt KB248391 KbMtth
คำติชม