วิธีการรีเฟรชกลุ่มความปลอดภัย AD บนการอนุญาต SQL Server


12

ฉันใช้ SQL Server 2008 บน Small Business Server 2003 ลูกค้าใช้ WinXP

ฉันเพิ่มผู้ใช้ไปยัง Active Directory Security Group; เหตุใดผู้ใช้นี้ไม่สามารถเข้าถึงฐานข้อมูลได้ทันที ดูเหมือนว่ามีความล่าช้าก่อนที่ผู้ใช้จะรู้จักใน SQL Server

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

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

ฉันต้องทำอย่างไรเพื่อให้เซิร์ฟเวอร์ SQL "รีเฟรช" รายชื่อผู้ใช้จาก Active Directory


ใน SQL Server 2008 Management Studio ฉันเพิ่มการเข้าสู่ระบบเซิร์ฟเวอร์โดยใช้กลุ่มความปลอดภัยและในฐานข้อมูลที่สร้างผู้ใช้ที่แมปเข้าสู่ระบบนั้น นั่นใช้งานได้ดี!
D_Bester

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

การตรวจสอบตัวควบคุมโดเมนแบบเฉพาะจุดฉันเห็นว่าการจำลองแบบเสร็จสิ้นหลังจาก 15 นาที แต่ SQL จะข้ามผู้ใช้รายใหม่ไปยังกลุ่มโฆษณา การรีสตาร์ทเซิร์ฟเวอร์ SQL ช่วยแก้ปัญหาดังนั้นจึงรอ 24 ชั่วโมง ต้องเป็นวิธีที่ดีกว่า
Aaron Auseth

คำตอบ:


12

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

นอกจากนี้ยังมีความล่าช้าในการจำลองแบบโดเมนหลายเว็บไซต์ซึ่งจำเป็นต้องนำมาพิจารณาหากตัวควบคุมโดเมนของคุณอยู่ในสถานที่ทางกายภาพที่แตกต่างกัน


1
มีคำสั่งหรือสคริปต์ที่สามารถเรียกใช้บนเวิร์กสเตชันเพื่อ "รีเฟรช" โทเค็นโฆษณาเพื่อที่จะ "รู้" ผู้ใช้ตอนนี้เป็นสมาชิกของกลุ่มโดเมนใหม่และหลีกเลี่ยงความล่าช้าหรือไม่ - อัปเดต: ดูเหมือนว่ามีคนแนะนำklist purgeไว้ที่dba.stackexchange.com/a/44922/29371แต่มีข้อแม้ว่ามันอาจทำลาย accessor ทรัพยากรแคชอื่น ๆ ที่ผู้ใช้จะต้องสร้างใหม่ / เชื่อมต่อใหม่อีกครั้ง
NateJ

@mrdenny คำแนะนำใด ๆ เกี่ยวกับวิธีจัดการกับบัญชีบริการนี้ เราเรียกใช้อินสแตนซ์ SQL ทั้งหมดภายใต้บัญชีบริการและใช้บัญชีบริการเหล่านี้สำหรับการเชื่อมต่อระหว่างเซิร์ฟเวอร์ SQL และ SSRS เป็นต้นในเวลาใดก็ตามเรามีการเชื่อมต่อระหว่างเครื่องมากมาย เราไม่สามารถยกเลิกการเชื่อมต่อการเชื่อมต่อทั้งหมดและทำการล็อกอินใหม่เพื่อรับข้อมูลกลุ่มโฆษณาใหม่
บางคนซื้อ

สำหรับบัญชีบริการทั้งหมดที่คุณสามารถทำได้คือเริ่มบริการบนเครื่องที่ต้องการสิทธิ์ใหม่
mrdenny

5

เมื่อผู้ใช้เข้าสู่ระบบพวกเขาจะได้รับโทเค็นความปลอดภัยที่มีข้อมูลทั้งหมดเกี่ยวกับการเป็นสมาชิกกลุ่มของพวกเขา

โทเค็นนี้ยังคงอยู่จนกว่าผู้ใช้จะออกจากระบบ - ณ จุดนั้นจะถูกยกเลิก - แม้ว่าคุณจะทำการเปลี่ยนแปลงการเป็นสมาชิกกลุ่มในโฆษณาในเวลาเฉลี่ย การเปลี่ยนแปลงที่คุณทำจะมีผลในครั้งต่อไปที่ผู้ใช้ล็อกออนและรับโทเค็นความปลอดภัยใหม่

คุณสามารถจำลองสถานการณ์เดียวกันเมื่อกำหนดสิทธิ์บนระบบไฟล์ตัวอย่างเช่น มันเป็นพฤติกรรมโฆษณาไม่ใช่พฤติกรรมของ SQL Server


1

ดังนั้นคุณจะได้รับผลลัพธ์ทันทีคือรับข้อมูลประจำตัวใหม่ทุกครั้งโดยการเรียกใช้ cmd / script เช่น:

runas /netonly /user:domain\username "sqlcmd -S serverName -d dbname -q \"insert into testpermissions values (65)\""

ใช้ cmd.exe (ไม่ใช่พาวเวอร์เชลฉันไม่ได้รับการอ้างอิงที่ถูกต้อง)

ด้วยวิธีนี้คุณจะได้รับโทเค็นใหม่ทุกครั้ง (แต่ต้องป้อนรหัสประจำตัวของคุณ) คุณอาจทำอะไรกับข้อความรหัสผ่านที่บันทึกไว้เช่นกัน

เอาล่ะทำงานให้ฉันและฉันหวังว่ามันจะช่วยคนอื่นได้

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