الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Replication Active Directory AND SQL Server

بدأه زكيري عبد العالي في 6 نوفمبر 2012 · 1 رد · 631 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي جدول المستعملين في قاعدة بيانات و بما اني اعمل على مشروع extranet

اريد ان يكون الجدول معدل في كل مرة يتغير فيه AD بمعنى Replication

هل استطيع عمل استعلام يقوم بعمليات التعديل اتوماتكيا

شكرا

لحد الان وجد سوة هذا الكود الناقص

SELECT * FROM OpenQuery(
ADSI,'<LDAP://DC=mondomaine,DC=com>;(&(objectCategory=Person)(objectClass=user));name,
adspath;subtree')
--ADSI,'<LDAP://DC=mondomaine,DC=com>;(&(objectCategory=Person)(objectClass=user));name,
adspath;subtree, SID;SID')

SELECT * FROM OpenQuery( ADSI, 'SELECT securityIdentifier, adsPath FROM
''LDAP://DC=mondomaine,DC=com'' WHERE objectCategory = ''Person'' AND
objectClass= ''user''')

select * from
(
SELECT * FROM OpenQuery( ADSI, 'SELECT o, name, objectsid, objectguid,
adsPath FROM
''LDAP://DC=mondomaine,DC=com'' WHERE objectCategory = ''Person'' AND
objectClass= ''user''')
)as a
where a.objectsid = (select suser_sid())
#2

السلام عليكم

لم استطع عمل نسخة مع Replication

الا اني استطعت نغيير كود c# الذي يقوم بالبحث في AD باستعلام SQL ;و دلك باضافة Linked Server

• http://msdn.microsoft.com/en-us/library/ms190803(v=sql.90).aspx

• http://msdn.microsoft.com/en-us/library/windows/desktop/aa772380%28v=vs.85%29.aspx

شكرا

ALTER Procedure [dbo].[sp_AD_USER_SelectByName]
@NAME varchar(50),
@DOMAIN varchar(200)
As
Begin

declare @ldapSQL nvarchar(4000) ;

set @ldapSQL = 'select  
    givenName,
    sn,
    cn,
    sAMAccountName,
    displayName,
    mail,
    telephoneNumber,
    mobile,
    physicalDeliveryOfficeName,
    department,
    division,
    userPrincipalName

from    '''''+@DOMAIN+'''''
where   
objectClass <> ''''computer''''
and
objectCategory = ''''Person''''
        and
        objectClass = ''''user''''
        and displayName ='''''+@NAME+'''''    

'
declare @strSQL nvarchar(Max) ;
set @strSQL = 'select  Top(100) *  from  openquery(adsi, ''' + @ldapSQL+ ''' )'
print @strSQL 
exec sp_executesql @strSQL 

End

[dbo].[sp_AD_USER_SelectByName] '*','LDAP://zekiri.com'

عندي مشكلة في عدد السجلات ان تجاوز 100 يضهر خطأ

اقتباس
Cannot fetch a row from OLE DB provider "ADSDSOObject" for linked server "adsi".

مواضيع مشابهة