การแม็พการล็อกอินเซิร์ฟเวอร์หลายครั้งกับผู้ใช้ฐานข้อมูลเดียว


11

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

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

ฉันมีการลงชื่อเข้าใช้ sql หลายสิบครั้ง (การรับรองความถูกต้องของเซิร์ฟเวอร์ sql) ซึ่งจำเป็นต้องอ่านการตั้งค่าเดียวจากฐานข้อมูลกลางและฉันควรแมปการเข้าสู่ระบบเหล่านี้ทั้งหมดกับผู้ใช้ฐานข้อมูลเดียวในฐานข้อมูลเป้าหมาย

ถ้าใช่จะมีไวยากรณ์ T-SQL ที่ถูกต้องอะไรบ้าง


เมื่อคุณพูดว่า "server logons" คุณหมายถึงบัญชี Windows หรือบัญชีเซิร์ฟเวอร์ SQL หรือไม่
Phil Sumner

ฉันกำลังพูดถึงบัญชีเซิร์ฟเวอร์ SQL จะแก้ไขคำถามเพื่อชี้แจง
leepfrog

คุณสร้าง a ROLEแล้วเพิ่มผู้ใช้ในบทบาทได้อย่างไร วิธีนี้คุณเพียงให้สิทธิ์กับบทบาท สิ่งนี้จะช่วยคุณจัดการความปลอดภัยในวิธีที่ดีกว่า นอกจากนี้เวอร์ชั่นเซิร์ฟเวอร์ sql คืออะไร - 2008R2, 2012
Kin Shah

คำตอบ:


19

ก่อนเพื่อให้แน่ใจว่าคำศัพท์ ล็อกอินเป็นหลักการรักษาความปลอดภัยระดับอินสแตนซ์ ( sys.server_principals) และผู้ใช้เป็นหลักการรักษาความปลอดภัยระดับฐานข้อมูล ( sys.database_principals) พวกเขาจะรวมกันโดย SID (ตัวระบุความปลอดภัย) หากคุณดูในมุมมองระบบด้านบนคุณสามารถดูว่า SID จะรวมกันอย่างไรในรูปแบบ 1: 1 โดย SID นั่นคือ 1 เข้าสู่ระบบเพื่อ 1 ผู้ใช้ในฐานข้อมูล เข้าสู่ระบบสามารถมีผู้ใช้หลายคน แต่พวกเขาจะต้องอยู่ในฐานข้อมูลที่แตกต่างกัน

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

CREATE USER [UserName] FROM LOGIN [LoginName]

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

สร้างบทบาทโดย:

CREATE ROLE RoleName

เพิ่มผู้ใช้ไปยังบทบาท (หรือหนึ่งบทบาทกับอีกบทบาทหนึ่ง)

EXEC sp_addrolemember 'RoleName','UserName'

หรือถ้าคุณอยู่ในปี 2012 หรือสูงกว่า

ALTER ROLE [RoleName] ADD MEMBER [UserName]

ขอบคุณสำหรับ explanaition รายละเอียดและข้อมูลพื้นฐานให้เคนเน็ ธ That's 1 Login to 1 User in a databaseสิ่งที่ฉันเป็นเรื่องเกี่ยวกับความชัดเจนคือ
leepfrog
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.