ฉันรู้ว่านี่เกือบจะซ้ำกัน: ข้อผิดพลาด "เข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ 'NT AUTHORITY \ IUSR'" ใน ASP.NET และ SQL Server 2008และการเข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ 'username' - System.Data.SqlClient.SqlException กับ LINQ ใน ไลบรารีโปรเจ็กต์ / คลาสภายนอกแต่บางอย่างไม่เพิ่มขึ้นเมื่อเทียบกับแอปพลิเคชันอื่น ๆ บนเซิร์ฟเวอร์ของฉันและฉันไม่แน่ใจว่าทำไม
กล่องที่ใช้:
กล่อง
ทดสอบ SQL กล่องเว็บกล่อง
SQL
ใบสมัครของฉัน:
ฉันมี ASP.NET Web Application ซึ่งอ้างอิงถึงไลบรารีคลาสที่ใช้ LINQ-to-SQL ตั้งค่าสตริงการเชื่อมต่ออย่างถูกต้องในไลบรารีคลาส ตามการเข้าสู่ระบบล้มเหลวสำหรับ 'ชื่อผู้ใช้' ของผู้ใช้ - System.Data.SqlClient.SqlException กับ LINQ ในไลบรารีโปรเจ็กต์ / คลาสภายนอกฉันยังเพิ่มสตริงการเชื่อมต่อนี้ไปยังแอปพลิเคชันบนเว็บ
สตริงการเชื่อมต่อใช้ข้อมูลประจำตัว SQL ตามนั้น (ทั้งในเว็บแอปและไลบรารีคลาส):
<add name="Namespace.My.MySettings.ConnectionStringProduction"
connectionString="Data Source=(SQL Test Box);Initial Catalog=(db name);Persist Security Info=True;User ID=ID;Password=Password"
providerName="System.Data.SqlClient" />
การเชื่อมต่อนี้ได้รับการยืนยันว่าใช้งานได้โดยเพิ่มไปยัง Server Explorer นี่คือสตริงการเชื่อมต่อที่ไฟล์. dbml ของฉันใช้
ปัญหา:
ฉันได้รับข้อผิดพลาดต่อไปนี้:
System.Data.SqlClient.SqlException: Login failed for user 'DOMAIN\MACHINENAME$'.
กำลังอ้างถึงสิ่งนี้ข้อผิดพลาด "การเข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ 'NT AUTHORITY \ IUSR'" ใน ASP.NET และ SQL Server 2008บอกว่านั่นเป็นบริการเครือข่ายท้องถิ่นจริงๆและการใช้ชื่ออื่นที่ไม่ใช่โดเมนจะไม่ทำงาน
แต่ฉันสับสนเพราะฉันได้ตรวจสอบทั้ง SQL Box และ SQL Test Box SQL Management Studio แล้วและทั้งสองมีNT AUTHORITY/NETWORK SERVICE
ภายใต้ความปลอดภัย -> การเข้าสู่ระบบที่ระดับฐานข้อมูลซึ่งไม่ได้อยู่ในรายการความปลอดภัย -> ผู้ใช้ แต่อยู่ที่ระดับความปลอดภัยของฐานข้อมูล -> ผู้ใช้ที่ฉันให้ผู้ใช้แสดงในสตริงการเชื่อมต่อ
ที่ระดับ NTFS บนเว็บเซิร์ฟเวอร์สิทธิ์ที่มี NETWORK SERVICE มีการควบคุมทั้งหมด
สาเหตุที่ฉันสับสนเพราะฉันมีเว็บแอปพลิเคชั่นอื่น ๆ มากมายบนเว็บเซิร์ฟเวอร์ของฉันฐานข้อมูลนั้นอ้างอิงทั้งในกล่อง SQL และกล่องทดสอบ SQL และทั้งหมดนี้ใช้งานได้ แต่ฉันไม่พบความแตกต่างระหว่างพวกเขากับแอปพลิเคชันปัจจุบันของฉันนอกจากฉันกำลังใช้ไลบรารีชั้นเรียน จะเรื่องนั้นไหม การตรวจสอบสิทธิ์ NTFS การตั้งค่า Security Logins ที่ระดับเซิร์ฟเวอร์และฐานข้อมูลสตริงการเชื่อมต่อและวิธีการเชื่อมต่อ (ข้อมูลประจำตัวของ SQL Server) และพูลแอปพลิเคชัน IIS และตัวเลือกโฟลเดอร์อื่น ๆ จะเหมือนกันทั้งหมด
เหตุใดแอปพลิเคชันเหล่านี้จึงทำงานได้โดยไม่ต้องเพิ่มชื่อเครื่องจักร $ ลงในสิทธิ์ของกล่อง SQL ของฉัน แต่นั่นคือสิ่งที่ลิงค์เดียวบอกให้ฉันทำเพื่อแก้ไขปัญหานี้