วิธีการแก้ไขสิทธิ์ในการตัดสินค้าจากคลังเมื่อคุณย้ายฐานข้อมูลระหว่างเซิร์ฟเวอร์ที่รัน SQL Server

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

เนื้อหาบนหน้านี้

สรุป

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

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

เมื่อคุณย้ายฐานข้อมูลจากเซิร์ฟเวอร์หนึ่งที่กำลังเรียกใช้ SQL Server ไปยังเซิร์ฟเวอร์อื่นที่กำลังเรียกใช้ SQL Server ที่ไม่ตรงกันอาจเกิดขึ้นระหว่างหมายเลขการรักษาความปลอดภัยประจำตัว (sid) ของล็อกอินในนั้นวางแผนหลักฐานข้อมูลและผู้ใช้ในการผู้ใช้:database. โดยค่าเริ่มต้น SQL Server 7.0, SQL Server 2000 และ SQL Server 2005 ให้sp_change_users_loginระบบการจัดเก็บกระบวนการแม็ปผู้ใช้เหล่านี้ไม่ตรงกัน อย่างไรก็ตาม คุณสามารถใช้เฉพาะsp_change_users_loginกระบวนงานที่เก็บไว้เพื่อแมปมาตรฐานล็อกอินของ SQL Server และคุณต้องดำเนินการเหล่านี้การแมปสำหรับผู้ใช้หนึ่งในเวลาเดียวกัน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการsp_change_users_loginกระบวนการ การจัดเก็บไว้ดูหัวข้อ "sp_change_users_login" ใน SQL Server 7.0, SQL Server 2000 และ SQL Server 2005 หนังสือออนไลน์

ใน SQL Server 7.0 หรือรุ่นหลัง คุณสามารถรักษาแมประหว่างการล็อกอินในนั้นวางแผนหลักฐานข้อมูลและผู้ใช้ในการผู้ใช้:ฐานข้อมูล โดยใช้ SIDs การแมปนี้จำเป็นต้องให้สิทธิ์ที่ถูกต้องสำหรับการเข้าสู่ระบบในการเก็บรักษาหมายผู้ใช้:ฐานข้อมูล เมื่อมีการแมปนี้สูญหาย ล็อกอินที่มีปัญหาเกี่ยวกับสิทธิ์ที่รวมถึง แต่ไม่จำกัดต่อไปนี้:
  • ถ้าไม่มีการเข้าสู่ระบบ SQL Server บนเซิร์ฟเวอร์ใหม่ และผู้ใช้พยายามล็อกออ ผู้ใช้อาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
    เซิร์ฟเวอร์: ข่าวสารเกี่ยวกับ 18456 ระดับ 16 รัฐ 1
    เข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ '% ls'
  • ถ้ามีการล็อกอินของ SQL Server ที่มีอยู่บนเซิร์ฟเวอร์ใหม่ แต่ SID ในนั้นวางแผนหลักฐานข้อมูลที่แตกต่างจาก SID ในนั้นผู้ใช้:ฐานข้อมูล ผู้ใช้สามารถเข้าสู่การ SQL Server เสร็จเรียบร้อยแล้ว การอย่างไรก็ตาม เมื่อผู้ใช้พยายามเข้าถึงฐานข้อมูลนั้น ผู้ใช้อาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
    เซิร์ฟเวอร์: ข่าวสารเกี่ยวกับ 916 ระดับ 14 รัฐ 1, Line1
    ผู้ใช้เซิร์ฟเวอร์ ' % * ls 'ไม่ใช่ผู้ใช้ที่ถูกต้องในฐานข้อมูล' % * ls'
    หมายเหตุ:ใน SQL Server 2005 ผู้ใช้อาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

    ผู้ใช้เซิร์ฟเวอร์ '% s' ไม่ใช่ผู้ใช้ที่ถูกต้องในฐานข้อมูล '% s' เพิ่มบัญชีผู้ใช้ลงในฐานข้อมูลก่อน
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบการรักษาความปลอดภัย 7.0 ของ SQL Server ให้ดูที่เอกสารทางเทคนิคของ "Microsoft SQL Server 7.0 Security" เมื่อต้องการดูเอกสารทางเทคนิค แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
.aspx http://msdn2.microsoft.com/en-us/library/Aa226173 (SQL.70)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบการรักษาความปลอดภัย 2000 ของ SQL Server คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
322712คุณลักษณะการรักษาความปลอดภัย S322712 Microsoft SQL Server 2000 และวิธีปฏิบัติที่ดีที่สุด

ข้อจำกัด

  • ถ้ามีผู้ใช้ในการsysusersตาราง โดยไม่มีหมายเลขนำหน้าชื่อคอมพิวเตอร์หรือชื่อโดเมนที่เป็นเจ้าของวัตถุ และออบเจ็กต์เหล่านี้จะอ้างอิงในแอปพลิเคชัน โดยใช้ชื่อส่วนสองชื่อผู้ใช้.objectnameโปรแกรมประยุกต์อาจหยุดเนื่องจากการsp_sidmapกระบวนงานที่เก็บไว้เปลี่ยนชื่อผู้ใช้เหล่านี้ ด้วยหมายเลขนำหน้าชื่อคอมพิวเตอร์หรือชื่อโดเมน ตามที่ปรากฏในนั้นsysxloginsตาราง: เมื่อต้องการแก้ไขปัญหานี้ หลังจากsp_sidmapกระบวนงานที่เก็บไว้เสร็จเรียบร้อยแล้ว การเปลี่ยนชื่อผู้ใช้ที่ได้รับผลกระทบในนั้นsysusersตารางชื่อเดิมของตน หรือติดต่อผู้ให้บริการสนับสนุนหลักของคุณ
  • บทความนี้ไม่ควรพิจารณานามแฝง คุณต้องจัดการนามแฝงด้วยตนเอง
  • ถ้ามีการเข้าสู่ระบบเซิร์ฟเวอร์ SQL มาตรฐานไม่มีอยู่บนเซิร์ฟเวอร์ SQL Server ใหม่ คุณสามารถเพิ่มการเข้าสู่ระบบ ด้วยรหัสผ่านเป็น NULL คุณอาจต้องเปลี่ยนรหัสผ่านสำหรับล็อกอินเหล่านี้ตามลำดับ
  • ถ้าผู้ใช้ถูกสร้างขึ้นในการผู้ใช้:ฐานข้อมูลที่ มีชื่อที่แตกต่างจากที่ซึ่งปรากฏในนั้นsysxloginsตาราง เป็นไม่ทราบว่าการเข้าสู่ระบบที่สอดคล้องกันสำหรับผู้ใช้นั้น Therefore, before you run thesp_sidmapกระบวนงานที่เก็บไว้:
    1. Transfer all the objects that this user owns to a staging database.
    2. Drop the user, add the user that has the correct name, and then transfer back all the objects for this user.
  • If a user has neither a corresponding login nor a prefix of either the local computer name or the domain name, you receive a message for this user. This message indicates that you must first add the user at the Windows level and then add it to the SQL Server as a login. After you do this, you must run thesp_sidmapstored procedure again.
  • If a user has a prefix of either the domain name or the local Windows server name, but the corresponding login does not exist in thesysxloginstable, the stored procedure tries to add this as a new login to SQL Server. If the Windows user does not exist, it generates an output message in the results window and then manually creates the login after it first adds the Windows user.
  • If there is more than one login for a user in thesysuserstable, you see an output message in the results file and it lists all the logins that have the same username. At this point, you must manually intervene to make sure that the user corresponds to only one login.

    ตัวอย่าง:ถ้าการsysuserstable has a user named "johndoe" and thesysxloginstable has logins with names such as "Test\johndoe" and "Test2\johndoe", when you run the stored procedure, you receive a message that states that one of the users has more than one login and that the System Administrator must choose one. This is the only time that you must run the second stored procedure,sp_prefix_sysusersname, which is provided in this article. Additionally, this situation is described in detail in the Readme.txt file.

Map the standard and integrated logins

After you move a database from one server that is running SQL Server server to another server that is running SQL Server server, follow these steps for minimal user intervention:

sql Server 7.0 และ SQL Server 2000

  1. Make sure that there is a login in thesysxloginstable in theวางแผนหลักdatabase for each user in thesysuserstable of the database.

    หมายเหตุ:To add a standard SQL Server login, see the "sp_addlogin" topic in SQL Server Books Online. To add an integrated SQL Server login, see the "sp_grantlogin" topic in SQL Server Books Online.
  2. Download the MapSids.exe file, and then extract the Sp_sidmap.sql and Readme.txt files.
  3. Log on to the server that is running SQL Server as a system administrator, and then run the Sp_sidmap.sql file in the user database. Running the Sp_sidmap.sql file creates the two stored procedures,sp_sidmapและsp_prefix_sysusersname.
  4. Make sure that the database is not accessed by any other user than the one who is running the stored procedures.
  5. Make sure that Query Analyzer displays results in text format and not in grid format. To do this, either press theCTRL^Tkeys, or clickแบบสอบถามแล้ว คลิกResults in Text. This is very important so that you can view the results and the informational messages in one window and save the output to a text file. You might need this file later to resolve some of the mappings.
  6. Because you cannot verify whether the parameters are passed correctly, make sure to pass them correctly to thesp_sidmapกระบวนงานที่เก็บไว้:
    EXEC sp_SidMap @old_domain = old_domain_name,
    @new_domain = new_domain_name,
    @old_server = old_server_name,
    @new_server = new_server_name
    Replace the values for the old and new domain names and server names appropriately.
  7. Save the results in a file and follow the directions that are provided in the Readme.txt file.

    หมายเหตุ:When you run these stored procedures, thesysuserstable is the only table that changes in the database. To return to a state where you started, restore the database from the backup or reattach the database.

sql Server 2005

If you are running SQL Server 2005, use theWITH LOGINclause of theALTER USERคำสั่งเพื่อ remap ผู้ใช้เพื่อการเข้าสู่ระบบใหม่ สำหรับข้อมูลเพิ่มเติม โปรดแวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft Developer Network (MSDN)::
http://msdn.microsoft.com/en-us/library/ms176060.aspx
หมายเหตุ:เมื่อต้องการใช้การมีการเข้าสู่ระบบอนุประโยคของแบบการเปลี่ยนแปลงผู้ใช้รายงาน คุณต้องใช้ SQL Server 2005 Service Pack 2

ข้อมูลอ้างอิง

หากต้องการทราบข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base::
274188หัวข้อ "การแก้ปัญหาผู้ใช้ orphaned" ในสมุดบัญชีออนไลน์ไม่สมบูรณ์
246133วิธีการถ่ายโอนเข้าสู่ระบบและรหัสผ่านระหว่างอินสแตนซ์ของ SQL Server
168001ข้อผิดพลาดผู้ใช้เข้าสู่ระบบและ/หรือการอนุญาตข้อหลังการคืนค่าการถ่ายโอนข้อมูล
298897ตัวอย่าง: Mapsids.exe ช่วยแมป SIDs ระหว่างผู้ใช้และฐานข้อมูลหลักเมื่อฐานข้อมูลถูกย้าย

คุณสมบัติ

หมายเลขบทความ (Article ID): 240872 - รีวิวครั้งสุดท้าย: 8 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
Keywords: 
kbhowtomaster kbmt KB240872 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:240872

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

 

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