วิธีเพิ่มกลุ่มผู้ใช้ Active Directory เมื่อเข้าสู่ระบบใน SQL Server


108

ฉันมีแอปพลิเคชัน. net ซึ่งเชื่อมต่อกับ SQL Server โดยใช้การตรวจสอบสิทธิ์ของ windows

เราไม่สามารถใช้การรับรองความถูกต้องของ SQL Server ในแอปพลิเคชัน เรามีผู้ใช้ Active Directory จำนวนมากสำหรับโครงการของเรา ดังนั้นเราจึงต้องสร้างบัญชีล็อกอินแยกกันสำหรับผู้ใช้ Active Directory แต่ละรายใน SQL Server แทนที่จะสร้างบัญชีล็อกอินแยกต่างหากสำหรับผู้ใช้ AD แต่ละรายมีวิธีใดบ้างในการใช้กลุ่มผู้ใช้ Active Directory ใน SQL Server

คำตอบ:


162

ใน SQL Server Management Studio ไปที่Object Explorer > (your server) > Security > LoginsและคลิกขวาNew Login:

ใส่คำอธิบายภาพที่นี่

จากนั้นในกล่องโต้ตอบที่ปรากฏขึ้นให้เลือกประเภทของวัตถุที่คุณต้องการดู ( Groupsถูกปิดใช้งานโดยค่าเริ่มต้น - ตรวจสอบ!) และเลือกตำแหน่งที่คุณต้องการค้นหาวัตถุของคุณ (เช่นใช้Entire Directory) จากนั้นค้นหากลุ่มโฆษณาของคุณ .

ใส่คำอธิบายภาพที่นี่

ขณะนี้คุณมีการเข้าสู่ระบบเซิร์ฟเวอร์ SQL ปกติเช่นเดียวกับเมื่อคุณสร้างขึ้นสำหรับผู้ใช้ AD รายเดียว ให้สิทธิ์การเข้าสู่ระบบใหม่ในฐานข้อมูลที่ต้องการและออกไป!

สมาชิกของกลุ่ม AD นั้นสามารถล็อกอินเข้าสู่ SQL Server และใช้ฐานข้อมูลของคุณได้แล้ว


มีโอกาสสร้างกลุ่มใน mysql เหมือนข้างบนหรือไม่?
uzay95

2
ขอบคุณสำหรับคำตอบที่ชัดเจนพร้อมภาพหน้าจอที่มีคำอธิบายประกอบ! ฉันหวังว่าคำตอบทั้งหมดจะเป็นเช่นนี้ ...
NickG

1
@NickG: ฉันใช้Paint.NETฟรีเพื่อโหลดภาพและแทรกสี่เหลี่ยมสีแดงโค้งมน
marc_s

7
สิ่งนี้ไม่ได้ผลสำหรับฉัน ฉันมี Windows Group "DataAccess" ซึ่ง "UserX" เป็นสมาชิกของ ฉันสร้างล็อกอินสำหรับกลุ่ม DataAccess และตั้งค่าการแมปผู้ใช้ของล็อกอินให้มีการเข้าถึงสาธารณะดาต้าเรเดอร์และตัวเขียนข้อมูลบนฐานข้อมูล ผู้ใช้ไม่สามารถเข้าสู่ระบบได้หากฉันเพิ่มผู้ใช้โดยเฉพาะและกำหนดสิทธิ์การทำแผนที่เดียวกันทั้งหมดเขาก็จะสามารถเข้าสู่ระบบได้เมื่อฉันคลิกที่ Securables> การอนุญาตที่มีประสิทธิภาพสำหรับกลุ่มจะมีข้อความว่า "ไม่สามารถดำเนินการในฐานะเซิร์ฟเวอร์หลัก เนื่องจาก 'GroupName' หลักไม่ออกจึงไม่สามารถแอบอ้างบุคคลสำคัญประเภทนี้ได้หรือคุณไม่ได้รับอนุญาต "
Triynko

1
@Tim: ชื่อผู้ใช้ - ยังคงเป็นผู้ใช้ที่เข้าสู่ระบบ - เขาไม่ได้รับอนุญาตโดยตรง - ในฐานะผู้ใช้ - แต่เป็นสมาชิกของกลุ่มนั้นที่มีสิทธิ์
marc_s

21

คุณสามารถใช้ T-SQL:

use master
GO
CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO
CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName

ฉันใช้สิ่งนี้เป็นส่วนหนึ่งของการกู้คืนจากเซิร์ฟเวอร์ที่ใช้งานจริงไปยังเครื่องทดสอบ:

USE master
GO
ALTER DATABASE yourDbName SET OFFLINE WITH ROLLBACK IMMEDIATE
RESTORE DATABASE yourDbName FROM DISK = 'd:\DropBox\backup\myDB.bak'
ALTER DATABASE yourDbName SET ONLINE
GO
CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO
CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO

คุณจะต้องใช้ชื่อบริการที่แปลเป็นภาษาท้องถิ่นในกรณีของ Windows เยอรมันหรือฝรั่งเศสโปรดดูวิธีสร้างล็อกอิน SQL Server สำหรับบัญชีบริการบน Windows ที่ไม่ใช่ภาษาอังกฤษ


ในกรณีที่คุณต้องตั้งค่าการเข้าสู่ระบบ / หลักระดับฐานข้อมูลนี่คือคำตอบอื่นที่ฉันพบว่ามีประโยชน์dba.stackexchange.com/a/2578/60876
Agostino

ฉันสงสัยว่าสิ่งนี้สามารถใช้เพื่อให้กลุ่มไดเรกทอรีที่ใช้งานอยู่บางกลุ่มเข้าถึงสคีมาบางอย่างได้หรือไม่ - ใน pseudo sql CREATE LOGIN ... WITH DEFAULT_SCHEMAจุด ... ต้องอ้างอิงกลุ่มโฆษณาบางกลุ่ม เรามีหลายกลุ่มและต้องการให้กลุ่มไดเรกทอรีที่ใช้งานaccountantsสามารถเข้าถึง schema´A´ แต่ไม่สามารถเข้าถึง schema´B´ และ´C´ ได้ ในทำนองเดียวกันกลุ่ม´billing` ควรมีสิทธิ์เข้าถึงสคีมา´B´ เท่านั้น ในส่วนหน้าเราใช้การเข้าถึง msft
surfmuggle

0

ไปที่ SQL Server Management Studio ไปที่ Security ไปที่ Logins แล้วคลิกขวา เมนูจะมีปุ่มขึ้นว่า "เข้าสู่ระบบใหม่" คุณจะสามารถเพิ่มผู้ใช้และ / หรือกลุ่มจาก Active Directory ไปยัง "สิทธิ์" ของ SQL Server ได้ที่นั่น หวังว่านี่จะช่วยได้


0

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


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