it-swarm.asia

كيف يمكنني تعيين وصول أمان مجموعة Active Directory بالكامل في SQL Server 2008؟

أرغب في استخدام الأمان المتكامل مع تطبيقي الداخلي الموجود على النطاق. لسوء الحظ ، لم أتمكن أبدًا من تشغيل هذا بشكل جيد. أود تعيين دور كامل لمجموعة Exchange (Active Directory) في SQL Server للوصول للقراءة/الكتابة إلى جداول معينة. وبهذه الطريقة لن أضطر إلى إنشاء عامل عندما يتم تعيين شخص ما أو حذف عامل عندما يتم فصل شخص ما. هل هذا ممكن؟ ما الخطوات التي سأقوم بها للقيام بذلك؟

40
Michael Hedgpeth
  • قم بتعيين مجموعة AD كمعلومات تسجيل دخول. و "تسجيل الدخول" يعني تسجيل الدخول على مستوى الخادم وليس مفهوم م المستخدم/تسجيل الدخول. في SQL Server الكلام ، هذا هو أساس مستوى الخادم
  • قم بإنشاء مستخدم تم تعيينه. لا يجب عليك حقًا السماح لمستخدم مباشرة على الجداول. و "المستخدم" يعني مستخدم قاعدة البيانات وليس مفهوم م المستخدم: في SQL Server الكلام ، هذا هو "مستوى قاعدة البيانات الرئيسية"
  • إضافة مستخدم إلى الدور (أيضًا "أساسي على مستوى قاعدة البيانات")
  • منح أذونات للأدوار في الجداول (جدول أو proc إلخ هو "آمن")

نموذج نصي

USE master;
GO
CREATE LOGIN [MYDOMAIN\APPLICATION SUPPORT] FROM WINDOWS;
GO
USE mydb;
GO
CREATE USER [MYDOMAIN\APPLICATION SUPPORT] FROM LOGIN [MYDOMAIN\APPLICATION SUPPORT];
GO
CREATE ROLE rSupport;
GO
EXEC sp_addrolemember 'rSupport', 'MYDOMAIN\APPLICATION SUPPORT';
GO
GRANT SELECT, INSERT,UPDATE, etc ON Mytable TO rSupport;
GO

sp_addrolemember موقوف بدءًا من SQL Server 2012 ، حيث ALTER ROLE يجب استخدامها بدلاً من ذلك.

50
gbn

من marc_s إجابة "كيفية إضافة مجموعة مستخدمي Active Directory كمعلومات تسجيل دخول في SQL Server" :

في SQL Server Management Studio ، انتقل إلى Object Explorer > (your server) > Security > Logins وانقر بزر الماوس الأيمن New Login:

enter image description here

ثم في مربع الحوار المنبثق ، اختر أنواع الكائنات التي تريد رؤيتها (Groups معطلة افتراضيًا - تحقق من ذلك!) واختر الموقع الذي تريد البحث فيه عن الكائنات (على سبيل المثال ، استخدم Entire Directory) ثم ابحث عن مجموعتك الإعلانية.

enter image description here

لديك الآن تسجيل دخول منتظم إلى SQL Server - تمامًا مثل إنشاء تسجيل دخول لمستخدم AD واحد. امنح تسجيل الدخول الجديد الأذونات على قواعد البيانات التي يحتاجها ، وانطلق!

يمكن لأي عضو في هذه المجموعة الإعلانية الآن تسجيل الدخول إلى SQL Server واستخدام قاعدة البيانات الخاصة بك.

5
Even Mien

إن منح الأذونات داخل SQL Server إلى مجموعة AD أمر سهل نسبيًا. يمكن القيام بذلك إما من خلال T-SQL أو Management Studio.

على سبيل المثال ، إذا كانت لديك مجموعة إعلانية تسمى MYDOMAIN\APPLICATION SUPPORT ، فستقوم بإنشاء تسجيل الدخول على مستوى الخادم ، ثم استخدام التعيينات لقواعد البيانات الفردية لإعطاء أذونات أكثر دقة مثل قارئ البيانات.

من الناحية المثالية ، يجب أن يكون كل الوصول إلى التطبيق من خلال الإجراءات المخزنة * ، لذا لا يلزم تنفيذ الأذونات إلا على تلك الإجراءات المخزنة في قاعدة البيانات هذه.

* من وجهة نظر أمنية ، للسماح لمستخدم معين برؤية بعض البيانات المحددة ، يمكنك إنشاء إجراء ومنح المستخدم تنفيذ إذن على هذا الإجراء ، ولا شيء آخر. السماح للمستخدم بالاستعلام مباشرة يعني إعطاء تحديد إذن على جميع الجداول المعنية. من السهل أيضًا العمل مع الإجراءات ، ومن الأسهل تصحيحه.

الإجراءات المخزنة مجردة الوصول إلى الجدول بعيداً والحد من الوصول. بالنسبة إلى أنواع DBA ، فهي مثل "دعني أرى جميع متغيرات المثيل: لا أريد استخدام الأساليب أو الحروف أو المستوطنين".

4
Peter Schofield

إذا كان المستخدم عضوًا في DOMAIN\SecurityGroup له سلطة مسؤول النظام في SQL ، فسيتم استخدامه عند الوصول إلى قواعد البيانات. وإلا ستحتاج إلى إلقاء نظرة على ما منحه DOMAIN\SecurityGroup (s) سلطة في كل قاعدة بيانات. إذا كان المستخدم عضوًا في 2 SecurityGroups ، مع وجود SecGroupA له سلطة تحديد و SecGroupB لها سلطة الإدراج ، فيمكن للمستخدم التحديد والإدراج.

1
Piyush Agrawal