рд╢реБрдн рджрд┐рди рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ SQL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ AD рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рди рдХреЗрд╡рд▓ рдореЗрд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рдмрд▓реНрдХрд┐ рдореБрдЭреЗ рд░реВрд╕реА рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдореИрдиреБрдЕрд▓ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред
рдкреНрд░рд╕реНрддреБрддрд┐ рдХреА рд╢реИрд▓реА рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрд╕реЗ рдкреВрдЫрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рди рдЯрдХрд░рд╛рдПрдВ, рдореИрдВрдиреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕реБрд▓рдн рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЦреБрдж рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЬрдм рдореИрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдерд╛ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрдп: "рдФрд░ рд╣рдореЗрдВ рдХрдВрдкрдиреА рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдВ, рддрд╛рдХрд┐ рдЙрд╕рдХреЗ рд╕рдореВрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдВред" рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡рд┐рдХ AD рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдХрд┐рддрдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЬреЛ рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ рд╡рд╣ рдпрд╣ рдерд╛ рдХрд┐ AD рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦреЗрдВ рдФрд░ рдЙрд╕рдореЗрдВ рд╕реЗ рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓ рд▓реЗрдВ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдХрд┐рд╕ рдереНрд░реЗрдб рдореЗрдВ рд▓реЗрдмрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЛ рдЬреЛ рднреА рдкрд╕рдВрдж рд╣реИ рдЙрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╡рд╛ рдпрд╛ рдХреНрдпрд╛ рдзрд╛рдЧрд╛ рдХреНрд░рд┐рд╕реНрдЯрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВред AD рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪреЗ?
рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ MSSQL рдореЗрдВ AD рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреЗрд╢реА OLE DB рдкреНрд░рджрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд▓рд┐рдВрдХ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рд░реНрд╡рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
EXEC master.dbo.sp_addlinkedserver @server = N'ADSI' , @srvproduct=N'Active Directory Service Interfaces' , @provider=N'ADSDSOObject' , @datasrc=N'adsdatasource'
рдореИрдВ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╡рд┐рд╖рдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХрд╛ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рд░реНрд╡рд░реЛрдВ (2008/2008 R2 / 2012) рдкрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЙрддреНрдкрдиреНрди sql рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╣реИред
рдореИрдВрдиреЗ рдпрд╣ рдирд╣реАрдВ рдХрд╣рд╛ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛;)
рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЙрд╕рдореЗрдВ рд▓реЙрдЧрд┐рди рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ADSI' ,@useself=N'False' ,@locallogin=NULL ,@rmtuser=N'Domain\user' ,@rmtpassword='password'
рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рд╣реА рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ ldap рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
Sql рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕:
EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'collation compatible', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'data access', @optvalue=N'true' EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'dist', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'pub', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'rpc', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'rpc out', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'sub', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'connect timeout', @optvalue=N'0' EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'collation name', @optvalue=null EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'lazy schema validation', @optvalue=N'false' EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'query timeout', @optvalue=N'0' EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'use remote collation', @optvalue=N'true' EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'remote proc transaction promotion', @optvalue=N'true'
рдпрд╣ рд╕рдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд░реНрд╡рд░ рд╣реИред рдЕрдм рдЖрдкрдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рдмреЛрд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- 1) рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕ - рдФрд░ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред
- 2) LDAP рд╕рдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕ - рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдпрд╣ рдЕрдзрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдЬрдм рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛ред
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд░реБрдЪрд┐ рдХреЗ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА OPENQUERY рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИрдВред FROM рдореЗрдВ рдХреНрд╡реЗрд░реА рдореЗрдВ, LDAP рдкреНрд░рдХрд╛рд░ рдХрд╛ рд▓рд┐рдВрдХ рд▓рд┐рдЦреЗрдВ: // dc = maindomain, dc = rootfolder, рдЗрд╕реЗ apostorophs рдореЗрдВ рд▓рдкреЗрдЯреЗрдВ рдФрд░ рдПрдХ рдЪрдпрди рд╕реВрдЪреА рд▓рд┐рдЦреЗрдВред рдпрд╣ рд▓рд┐рдВрдХ рдпрд╛ рддреЛ рдкреНрд░рд╡реЗрд╢рдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЖрдк рдЙрд╕ рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдХрд┐рд╕реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ ldap рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдЬрд╝рд░реВрд░рдд рд╣реИред
рдкреНрд░рд╢реНрди:
SELECT * FROM OPENQUERY(ADSI,'SELECT cn,sAMAccountName FROM ''LDAP://dc=maindomain,dc=rootfolder''')
F5 рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рд╣реБрд░реНрд░реЗ рдЕрдиреБрд░реЛрдз рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдирдВрдж рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╣реИ, рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмрд╛рдж 900 (рдПрдХ рд╕реЗрдХрдВрдб рд╕реЗ рдХрдо) рдмрд╛рд╣рд░ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИ
рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рд╕рд░реНрд╡рд░ "ADSI" рдХреЗ рд▓рд┐рдП OLE DB рдкреНрд░рджрд╛рддрд╛ "ADSDSOObject" рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдирд╣реАрдВ рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ AD рдХреА рдПрдХ рдХрд╕реНрдЯрдо рд╕реАрдорд╛ рд╣реИ, рди рдХрд┐ рдбреНрд░рд╛рдЗрд╡рд░, рдпрд╛ рдкреНрд░рджрд╛рддрд╛, рдпрд╛ рдХреБрдЫ рдФрд░ред рдЦреИрд░, рдЕрдЧрд░ рдпрд╣ рд╕рд┐рд░реНрдл 2000 рдирд╣реАрдВ рд╣реИ, рддреЛ 2000 рдореЗрдВ рдпрд╣ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо
рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдХреЛ рдЗрд╕ рд╕реАрдорд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпрд╛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВред рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред
рдЕрдкрдиреА рдЦреЛрдЬ рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░реЗрдВ:
SELECT * FROM OPENQUERY(ADSI,'SELECT cn,sAMAccountName FROM ''LDAP://dc=maindomain,dc=rootfolder'' WHERE AND objectClass=''person'' AND objectClass<>''computer'' ')
рдлрд┐рд░ рд╕реЗ рдмрд╣реБрдд? рдареАрдХ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЪрд╛рд▓рд╛рдХ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╣рдореЗрдВ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓реЙрдЧрд┐рди рдХреЛ рднреА рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛, рди рдХрд┐ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗред рдареАрдХ рд╣реИ, рд╣рдо рдХрдо рд╕реЗ рдХрдо рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЦреЛрдЬ рд▓реЗрдВрдЧреЗ рдЬрд┐рдирдХрд╛ рд▓реЙрдЧрд┐рди рдПрдмреАрд╕реА рдкрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рд╣рдо sAMAccountName рдХреНрд╖реЗрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХрд░реЗрдВрдЧреЗ - рдпрд╣ рдПрдХ рдРрд╕рд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬреЛ рд╕рднреА AD рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ, рдареАрдХ рд╣реИ, рдпрджрд┐ рдЖрдк рдПрдХ рдЕрддреНрдпрдВрдд рдЕрдиреВрдареА рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдЕрднреА рднреА рдЪрд░рдо рдкрд░ рд╣реИ, рддреЛ рдкреНрд░рд╡реЗрд╢рдХрд░реНрддрд╛рдУрдВ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдЗрд╕реЗ (рдпреЛрдЬрдирд╛) рдЦреЛрдЬрдиреЗ рджреЗрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдореИрджрд╛рди рдкрд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИред рдЕрдм рдмреЛрд▓реА рдПрдПрдирдЖрдИ рд╡рд░реНрдЧ рд╕реЗ рдЕрд▓рдЧ рд╣реИ:
SELECT * FROM OPENQUERY(ADSI,'SELECT cn,sAMAccountName FROM ''LDAP://dc=maindomain,dc=rootfolder'' WHERE sAMAccountName =''abc*'' AND objectClass=''person'' AND objectClass<>''computer'' ')
рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдмреАрд╕реА рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреБрдЫ рд▓реМрдЯрд╛рдПрдЧрд╛:
sAMAccountName cn
abceeeee abceeeee dfdf eee
рд╣рд╛рдВ, рдЙрд▓реНрдЯреЗ рдХреНрд░рдо рдореЗрдВред рдирд╣реАрдВ, рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВред рдареАрдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рдХреЗ рд╕рд╛рде рдЖрдПрдВрдЧреЗ рдЬреЛ рдПрдХ рд╕реЗ рдЬреЗрдб рддрдХ рдкрддреНрд░ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ sAMAccountName = aa * рдкреНрд░рдХрд╛рд░ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ sAMAccountName = ab *, рдЧрддрд┐рд╢реАрд▓ рдХреНрд╡реЗрд░реА рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред рдЕрдм рдЖрдкрдХреЛ рд╕рдореВрд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рдкреВрдЫрддреЗ рд╣реИрдВ:
SELECT * FROM OPENQUERY(ADSI,'SELECT memberOf,cn,sAMAccountName FROM ''LDAP://dc=maindomain,dc=rootfolder'' WHERE sAMAccountName =''abc*'' AND objectClass=''person'' AND objectClass<>''computer'' ')
рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:
рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рд╕рд░реНрд╡рд░ "ADSI" рдХреЗ рд▓рд┐рдП OLE DB рдкреНрд░рджрд╛рддрд╛ "ADSDSOObject" рд╕реЗ рдкрдВрдХреНрддрд┐ рдХрд╛ рдбреЗрдЯрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдЗрди рдмреЗрдореЗрд▓ рдпрд╛ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдХрд╛рд░рдгреЛрдВ рдХреЗ рдХрд╛рд░рдг рдбреЗрдЯрд╛ рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрд╛ред
рд╕рджрд╕реНрдпрдСрдл рдХрдИ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рддрд╛рд░реНрдХрд┐рдХред рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдореВрд╣реЛрдВ рд╕реЗ рдирд╣реАрдВ рдкреВрдЫреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рдореВрд╣ рдЬрд┐рдирдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕ рд╕рдВрдкреВрд░реНрдг рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред рд╕рднреА рд╕рдореВрд╣реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдРрд╕реЗ рд╕рдореВрд╣ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рд╡рд╛рдВрдЫрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ dn рд╕рджрд╕реНрдп рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛ
SELECT * FROM OPENQUERY(ADSI,'SELECT name FROM ''LDAP://dc=maindomain,dc=rootfolder'' WHERE objectCategory = ''Group'' AND member=''CN=username,OU=Departments,dc=maindomain,dc=rootfolder'' ')
рд╕рдореВрд╣реЛрдВ рдХреЛ рдЖрд░реЗрдЦ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдЙрдирд╕реЗ рдХреНрдпрд╛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЕрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "umi (yumi рдЪреАрдиреА рд╡рд┐рднрд╛рдЧ) рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред" рдЦреИрд░, рдПрдХ рдЕрдЬреАрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдореИрдВ рдмрд╣рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ред рд▓реЗрдХрд┐рди рдЕрдВрдЧреНрд░реЗрдЬреА рдирд╛рдо, рдФрд░ рд░реВрд╕реА рдХреЛрд╖реНрдардХ рдореЗрдВ, рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдареАрдХ рд╣реИ, рдмрд╛рдд рдирд╣реАрдВред
рдкреНрд░рд╢реНрди:
SELECT * FROM OPENQUERY(ADSI,'SELECT name FROM ''LDAP://dc=maindomain,dc=rootfolder'' WHERE objectCategory = ''Group'' AND member=''CN=umi( ),OU=Departments,dc=maindomain,dc=rootfolder'' ')
рдпрджрд┐ рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдореВрд╣ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдЙрддреНрддрд░ рднреА рдорд┐рд▓реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрд╣реАрдВ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрд╕реА рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реЛрдЧреА
umi( , , )
рдФрд░ cn рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 64 рдЕрдХреНрд╖рд░реЛрдВ рдХреА рд╕реАрдорд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдпрд╣ рдорд┐рд▓рддрд╛ рд╣реИ:
umi( ,
рдЕрдиреБрд░реЛрдз рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, sql рдХреНрд╡реЗрд░реА рд╡рдХреНрд░ рдкрд░ рд╢рдкрде рдирд╣реАрдВ рд▓реЗрдЧрд╛, рд▓реЗрдХрд┐рди ldap рдкреНрд░рджрд╛рддрд╛ рд╢рдкрде рд▓реЗрдЧрд╛ рдФрд░ рдХрд╣реЗрдЧрд╛ рдХрд┐
рд▓рд┐рдВрдХ рд╕рд░реНрд╡рд░ "ADSI" рдХреЗ рд▓рд┐рдП OLE DB рдкреНрд░рджрд╛рддрд╛ "ADSDSOObject" рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП "рдпрд╣рд╛рдБ рд╣рдорд╛рд░реА рдХреНрд╡реЗрд░реА рд╣реИ" рдХреНрд╡реЗрд░реА рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╕рдордп рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИред
рд╣рд╛рдВ, рдЖрдк рдХреЛрд╖реНрдардХ рдХреА рдЦреЛрдЬ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдЖрдк рдЙрджреНрдзрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдПрдХ рд╕реНрд▓реИрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдлрд┐рд░ рдПрдХ рдПрдореНрдкрд░рд╕реЗрдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕реЛрдЪрд╛ред рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд╡рд╛рдм рдЕрдкрдиреЗ рдЖрдк рдЖрдпрд╛: рдореИрдВрдиреЗ рдЙрд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ ldap рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рдЖрдк рдХреЛрдИ рднреА рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡реИрд╕реЗ рднреА рдХрд╛рдо рдЖрдПрдЧрд╛)ред рдФрд░ рдЕрдиреБрд░реЛрдз рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рдЬрдм рдореИрдВрдиреЗ рд╕реНрд▓реИрд╢ рдХреА рд╢реБрд░реБрдЖрдд рдХреА, рддреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЦреБрдж рдореБрдЭреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рдХреМрди рд╕реЗ рдкрд╛рддреНрд░ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реВрдЪреА рд╣реИ:
( - \28
) - \29
* - \2A
\ - \5C
Carriage Return - \0D
Line Feed - 0A
NUL - \00
рдЕрд▓рдЧ-рдЕрд▓рдЧ, рдпрд╣ рдПрдкреЛрд╕реНрдЯреНрд░реЛрдл рдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд▓рд╛рдпрди рдХреА рд╕реВрдЪреА рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдПрдкреЛрд╕реНрдЯреНрд░реЛрдл рдирд╣реАрдВ рд╣реИред AD рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдЕрдиреБрд░реЛрдз рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдкреНрд░рджрд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдз рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рддреНрд░реБрдЯрд┐ рдмрд┐рд▓реНрдХреБрд▓ рдЧрд┐рд░ рдЬрд╛рддреА рд╣реИред рдЖрдк рдХреЗрд╡рд▓ рдЗрд╕реЗ sql рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реАрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдорд╛рд░рд╛ dn рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
CN=Luk'yanova Inna ( ),OU=Departments,dc=maindomain,dc=rootfolder
ред
рд╣рдордиреЗ @dn рдореЗрдВ рдЗрд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рд╡рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ред рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдмреИрдардиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рди рд╣реЛ рдХрд┐ рдпрд╣рд╛рдБ рдХрд┐рддрдиреЗ рдПрдкреЛрд╕реНрдЯреНрд░реЛрдлрд╝реНрд╕ рдЪреБрдирдиреЗ рд╣реИрдВ:
SET @dn = REPLACE(@dn,'''','''''''''')
рдареАрдХ рд╣реИ, рдлрд┐рд░, рдФрд░ рдлрд┐рд░ рдпрд╛ рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЗрд╕ рдХреНрд╡реЗрд░реА (рд╕рд╛рдорд╛рдиреЛрдВ) рдХреЛ рд╕рд╛рдорд╛рди рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдЖрдк рдХреА рддрд░рд╣ рд╣реА sql рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред
рд╡рд┐рд╖рдп рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ PS, рдХреГрдкрдпрд╛ рдореБрдЭреЗ PM рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВред