ข้อผิดพลาดในการเปลี่ยนความเป็นเจ้าของฐานข้อมูลจากหน้าไฟล์ในกล่องโต้ตอบคุณสมบัติฐานข้อมูล


10

ฉันกู้คืนฐานข้อมูลและสร้างผู้ใช้ใหม่ (ผู้ใช้เดียวกันกับที่ฉันเข้าสู่ระบบ) เป็น db_owner ตอนนี้เมื่อฉันต้องการดูแผนภาพฐานข้อมูลมีข้อผิดพลาด

ไม่สามารถติดตั้งวัตถุการสนับสนุนไดอะแกรมฐานข้อมูลได้เนื่องจากฐานข้อมูลนี้ไม่มีเจ้าของที่ถูกต้อง หากต้องการดำเนินการต่อให้ใช้ไฟล์หน้าแรกของกล่องโต้ตอบคุณสมบัติฐานข้อมูลหรือคำสั่งแก้ไขการอนุญาตเพื่อตั้งค่าเจ้าของฐานข้อมูลให้เข้าสู่ระบบที่ถูกต้องจากนั้นเพิ่มวัตถุสนับสนุนฐานข้อมูล

ตอนนี้เมื่อฉันพยายามเปลี่ยนความเป็นเจ้าของจากหน้าไฟล์ของคุณสมบัติฐานข้อมูลฉันได้รับข้อผิดพลาดเป็น

ตั้งเจ้าของไม่สำเร็จสำหรับฐานข้อมูล 'ABC' (Microsoft.SqlServer.SMO) ข้อมูลเพิ่มเติม: มีข้อยกเว้นเกิดขึ้นใน SMO เจ้าของฐานข้อมูลใหม่ที่เสนอ James-PC \ James ถูกแมปในฐานะผู้ใช้ James ในฐานข้อมูลนี้ ชื่อพารามิเตอร์: James-PC \ James "

โปรดช่วยฉันแก้ไขปัญหาเพื่อให้ฉันสามารถดูไดอะแกรมฐานข้อมูลบนคอมพิวเตอร์เครื่องนี้หลังจากกู้คืนข้อมูลสำรองฐานข้อมูลจากระบบอื่น

คำตอบ:


8

เจ้าของฐานข้อมูลคือล็อกอินใน sys.server_principals ที่เป็นเจ้าของฐานข้อมูลตามที่กำหนดโดย SID หลังจากการคืนค่าอาจเป็นกรณีที่การเข้าสู่ระบบที่ใช้ในการกู้คืนฐานข้อมูลไม่ใช่การเข้าสู่ระบบที่เป็นเจ้าของฐานข้อมูลก่อนหน้านี้ (นี่เป็นแนวโน้มที่จะเกิดขึ้นเมื่อฐานข้อมูลหากย้ายระหว่างเซิร์ฟเวอร์)

ดังนั้นอาจมีการตั้งค่าสามรายการที่คุณมีปัญหา

  1. owner_sid ฐานข้อมูลไม่เท่ากับ sid ของฐานข้อมูล db_owner คุณสามารถเปรียบเทียบสิ่งนี้กับฐานข้อมูล ABC โดย:

    SELECT owner_sid จาก sys.database โดยที่ name = 'ABC';

    เลือก sid จาก ABC.sys.database_principals WHERE name = 'dbo';

  2. ถัดไปคุณจะได้รับข้อความแจ้งว่า owner_sid ฐานข้อมูลที่คุณเสนอมีอยู่ในฐานะผู้ใช้ใน sys.database_principals เรารู้สิ่งนี้จากข้อความแสดงข้อผิดพลาดเกี่ยวกับการทำแผนที่เจ้าของที่เสนอ

ดังนั้นขั้นตอนของคุณคือ:

 USE ABC;
 DROP USER James;
 ALTER AUTHORIZATION ON DATABASE::ABC TO [James-PC\James];

คุณลบผู้ใช้ที่ไม่ต้องการออกเนื่องจากคุณเป็น dbo หลังจากที่พ้นทางแล้วการเข้าสู่ระบบของคุณสามารถทำให้เจ้าของฐานข้อมูล

แก้ไข: คุณสามารถใช้ SSMS เพื่อลบผู้ใช้ James ออกจากฐานข้อมูล ABC จากนั้นคุณสามารถกลับไปที่แท็บไฟล์คุณสมบัติฐานข้อมูลเพื่อตั้งค่าเจ้าของฐานข้อมูล (ขออภัยฉันมักจะคิดว่าสคริปต์)


1
นั่นน่าสนใจใน Management Studio การเข้าสู่ระบบที่สร้างขึ้นเป็น dbo ไม่ปรากฏภายใต้ YOUR_DB / ความปลอดภัย / ผู้ใช้
joedotnot

-3
  1. ฐานข้อมูลคลิกขวา
  2. คุณสมบัติ
  3. เลือกไฟล์
  4. แก้ไข / ตั้งเจ้าของ (เพื่อ yourpc \ you หรือเรียกดูและเลือกโดยคลิก "... ")

สิ่งนี้ใช้ได้กับฉันใน SQL Server studio studio v17.1


2
ฉันคิดว่านี่ไม่ได้ผลสำหรับพวกเขา
dezso
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.