SQL Server 2008: ฉันจะให้สิทธิ์แก่ชื่อผู้ใช้ได้อย่างไร


102

ฉันจำเป็นต้องสามารถสร้างการเชื่อมต่อ ODBC ผ่านการรับรองความถูกต้องของ SQL Server

ใน SSMS ฉันจะให้สิทธิ์แก่ผู้ใช้เพื่อให้มีสิทธิ์ทั้งหมดในฐานข้อมูลเฉพาะได้อย่างไร

มีวิธีทำกราฟิกกับ SSMS หรือไม่

คำตอบ:


139

หากคุณต้องการให้สิทธิ์ในการอ่านทั้งหมดแก่ผู้ใช้คุณสามารถใช้:

EXEC sp_addrolemember N'db_datareader', N'your-user-name'

ซึ่งจะเพิ่มdb_datareaderบทบาทเริ่มต้น(สิทธิ์ในการอ่านบนตารางทั้งหมด) ให้กับผู้ใช้นั้น

นอกจากนี้ยังมีdb_datawriterบทบาทซึ่งให้สิทธิ์การเขียนทั้งหมดแก่ผู้ใช้ของคุณ (INSERT, UPDATE, DELETE) ในทุกตาราง:

EXEC sp_addrolemember N'db_datawriter', N'your-user-name'

หากคุณต้องการความละเอียดมากขึ้นคุณสามารถใช้GRANTคำสั่ง:

GRANT SELECT, INSERT, UPDATE ON dbo.YourTable TO YourUserName
GRANT SELECT, INSERT ON dbo.YourTable2 TO YourUserName
GRANT SELECT, DELETE ON dbo.YourTable3 TO YourUserName

และอื่น ๆ - คุณสามารถให้สิทธิ์ SELECT, INSERT, UPDATE, DELETE ในตารางเฉพาะอย่างละเอียดได้

ทั้งหมดนี้เป็นเอกสารที่ดีมากในMSDN หนังสือออนไลน์สำหรับ SQL Server

และใช่คุณสามารถทำแบบกราฟิกใน SSMS ไปที่ฐานข้อมูลของคุณจากนั้นSecurity > Usersคลิกขวาที่ผู้ใช้ที่คุณต้องการให้สิทธิ์จากนั้นดูPropertiesที่ด้านล่างคุณจะเห็น "การเป็นสมาชิกบทบาทฐานข้อมูล" ซึ่งคุณสามารถเพิ่ม ผู้ใช้กับบทบาท db

ข้อความแสดงแทน


อย่างไรก็ตามฉันไม่มีโหนดผู้ใช้ในโครงสร้างความปลอดภัยใน SSMS มีเพียงการเข้าสู่ระบบและข้อมูลรับรองเท่านั้นนอกเหนือจากนี้เพื่อให้ sp_addrolemember ทำงานได้ผู้ใช้จะต้องถูกแมปกับฐานข้อมูลที่เป็นปัญหามิฉะนั้น "ผู้ใช้ ... ไม่ มีอยู่ในฐานข้อมูล "ได้รับข้อผิดพลาด ( stackoverflow.com/questions/7232559/… - ดูความคิดเห็นของคำตอบที่ยอมรับ) - ฉันสามารถแมปฐานข้อมูลผู้ใช้ผ่านคุณสมบัติของอ็อบเจ็กต์การเข้าสู่ระบบของผู้ใช้
hello_earth

@marc_s วิธีให้สิทธิ์ที่เกี่ยวข้องกับตารางโดยใช้ SSMS
CAD

1
@ Chathuranga: อ่านเอกสารที่ยอดเยี่ยมและมีให้ฟรี!
marc_s


18

ดังต่อไปนี้. มันจะทำให้เจ้าของฐานข้อมูลผู้ใช้

EXEC sp_addrolemember N'db_owner', N'USerNAme'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.