บทบาท db_owner อนุญาตอะไร


15

ฉันพยายามแก้ไขปัญหาการเข้าสู่ระบบที่ไม่สามารถดูตารางบางอย่างในฐานข้อมูล SQL Server 2012 ในการทำเช่นนั้นฉันพบว่าฉันไม่ค่อยเข้าใจในการเป็นสมาชิกในdb_ownerบทบาทที่อนุญาต ฉันสามารถเข้าใจบทบาทอื่น ๆ เช่นdb_datareader and db_datawriterแต่ฉันยังคงสับสนกับสิ่งที่db_ownerอนุญาต

คำตอบ:


15

โปรดดูข้อมูลอ้างอิงเกี่ยวกับ BOL สำหรับบทบาทระดับฐานข้อมูล :

db_owner

สมาชิกของ db_owner คงบทบาทของฐานข้อมูลสามารถดำเนินการตั้งค่าและการบำรุงรักษากิจกรรมทั้งหมดในฐานข้อมูลและยังสามารถลดลงฐานข้อมูล

วิธีที่ง่ายที่สุดในการดูการอนุญาตทั้งหมดคือการใช้sys.fn_my_permissions()ฟังก์ชั่น ขั้นแรกให้ยืนยันว่าคุณเป็นสมาชิกของdb_owner:

select
    rol.name
from sys.database_principals mem
inner join sys.database_role_members drm
on drm.member_principal_id = mem.principal_id
inner join sys.database_principals rol
on drm.role_principal_id = rol.principal_id
where mem.principal_id = user_id();

ตอนนี้รายการสิทธิ์ฐานข้อมูลที่มีประสิทธิภาพทั้งหมด:

select *
from sys.fn_my_permissions(null, 'database');

นั่นควรจะละเอียดพอสำหรับวัตถุประสงค์ของคุณ สิ่งที่ควรทราบsys.fn_my_permissions()ส่งคืนสิทธิ์ที่มีประสิทธิภาพดังนั้นให้คิดว่าเป็นการรวมตัว


นั่นหมายความว่าผู้ใช้ที่db_ownerเป็นสมาชิกมีสิทธิ์เริ่มต้นเหมือนกับdb_readerและdb_writerใช่หรือไม่
webworm

5
สมาชิกของdb_ownerบทบาทของฐานข้อมูลคงที่จะมีSELECT, INSERT, UPDATEและDELETEสิทธิ์ในฐานข้อมูล ในบรรดาสิทธิ์อื่น ๆ อีกมากมาย แต่ใช่ว่าถูกต้อง
Thomas Stringer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.