ฉันพยายามลบหลักการจากฐานข้อมูล แต่ไม่สามารถทำได้เพราะเป็นเจ้าของสคีมา อย่างไรก็ตามเมื่อฉันไปแก้ไขผู้ใช้กล่องเพื่อยกเลิกการเลือก schemae นั้นเป็นสีน้ำเงินและไม่สามารถเคลื่อนย้ายได้ ฉันจะลบหลักการออกจากสกีมาเหล่านี้ได้อย่างไร
ฉันพยายามลบหลักการจากฐานข้อมูล แต่ไม่สามารถทำได้เพราะเป็นเจ้าของสคีมา อย่างไรก็ตามเมื่อฉันไปแก้ไขผู้ใช้กล่องเพื่อยกเลิกการเลือก schemae นั้นเป็นสีน้ำเงินและไม่สามารถเคลื่อนย้ายได้ ฉันจะลบหลักการออกจากสกีมาเหล่านี้ได้อย่างไร
คำตอบ:
ลอง T-SQL เพื่อทำสิ่งนี้:
alter authorization
on schema::YourSchemaName
to dbo
go
drop user TheUserYouWantToDelete
go
คุณไม่สามารถลบหลักการที่เป็นเจ้าของสคีมาดังนั้นการALTER AUTHORZATION
เปลี่ยนแปลงสคีมาที่เป็นเจ้าของ (ฉันใช้YourSchemaName
แต่เห็นได้ชัดว่าแทนที่สคีมาที่เป็นเจ้าของในฐานข้อมูลของคุณ) เป็นdbo
(เช่นเดียวกันคุณสามารถเปลี่ยนความเป็นเจ้าของเป็นหลักที่คุณต้องการ สภาพแวดล้อม) ที่จะช่วยให้คุณวางผู้ใช้ที่เป็นเจ้าของสคีมาก่อนหน้านี้ (ตัวอย่างเช่นวัตถุประสงค์ที่ฉันใช้TheUserYouWantToDelete
แต่ตอนนี้จะเป็นเจ้าของที่คุณไม่ต้องการวางไว้
dbo
สคีเรากำลังจะเปลี่ยนอนุญาตให้dbo
หลัก นั่นอาจเป็นฐานข้อมูลหลักก็ได้
วิธี T-SQL ใช้งานได้ ขอบคุณ http://zarez.net/?p=179 ฉันพบวิธี SSMS ในการทำเช่นนี้ (UI)
วิธีเปลี่ยนเจ้าของสคีมาจาก Sql Server Management Studio:
Expand your database -> Security -> Schemas
ในรายละเอียด Object Explorer คุณสามารถดูรายการสกีมาและเจ้าของ:
หากคุณไม่ทราบว่าผู้ใช้เป็นเจ้าของสคีมาใดให้ตรวจสอบคุณสมบัติของผู้ใช้
เปิดคุณสมบัติของ schema ที่ผู้ใช้เป็นเจ้าของและคลิก "ค้นหา" เพื่อค้นหาเจ้าของใหม่ หากคุณไม่รู้จักเจ้าของใหม่คุณสามารถ "ค้นหา" หนึ่งคน
Properites -> Search -> Browse
และคุณสามารถเปลี่ยนเจ้าของสคีมาเป็น dbo (หรือใครก็ตามที่เหมาะสมที่สุด)