ฉันมีปัญหาในการตั้งค่าการVIEW DEFINITIONอนุญาตอย่างเหมาะสมในระดับสคีมาสำหรับผู้ใช้รายหนึ่งของฉัน ฉันสร้างคีมาTestSchemaแล้วเพิ่มบางตาราง ผู้ใช้ปัจจุบันมีสิทธิ์ในการเข้าถึงการตั้งค่าและปรับเปลี่ยนตาราง ( SELECT, UPDATE, DELETEฯลฯ ) ผ่านdbo_datareaderและdbo_datawriterบทบาท อย่างไรก็ตามพวกเขาไม่สามารถมองเห็นตารางใด ๆ ในตัวสำรวจวัตถุ SSMS
ฉันลองให้สิทธิ์เพื่อดูคำจำกัดความ:
grant view definition on SCHEMA :: [TestSchema] to [User]
นั่นไม่ได้ผล ฉันพยายามตั้งค่าการอนุญาตระดับตาราง:
grant view definition on [TestSchema].[NewTable] to [User]
นั่นก็ไม่ได้ผล จากนั้นฉันก็ลองแค่ให้ผ้าห่ม:
grant view definition to [User]
และนั่นก็ใช้ได้ ตอนนี้พวกเขาสามารถมองเห็นTestSchemaได้เช่นเดียวกับสกีมาอื่น ๆ ที่พวกเขาไม่ควรเข้าถึง
เป้าหมายของฉันที่นี่คืออนุญาตให้ผู้ใช้ดูตารางทั้งหมดภายในสคีมาที่กำหนด ฉันจะทำให้สำเร็จได้อย่างไร หากฉันควรจะทำสิ่งนี้โดยค่าเริ่มต้นฉันควรตรวจสอบสิทธิ์ใดบ้างเพื่อค้นหาสาเหตุที่ทำไม่ได้