onze sponsors
Ik wil vanuit SQL kunnen editen in de AD (nieuwe gebruikers/wijzigen gebruikers/groepen etc.). Middels een linked-server en openquery kan ik de gegevens uit de AD wel ophalen, maar niet editen.
Wat kan ik hier het beste voor gebruiken? Middels CLR: C# of VB? Of bestaat er een mogelijkheid om vanuit SQL/t-sql powershell te gebruiken?
Voor mij is dit nieuw. Ik ben benieuwd naar wat gebruikelijk en/of te gebruiken is. Gaarne jullie reaktie.
Mvg,
Dick
Misschien moet ik mijn vraag anders stellen. Welke security-problemen kan ik verwachten als ik CLR open zet in SQL?
Zoals mijn vorige post al min of meer aangeeft, hebben wij alle onze gebruikers in een database staan. Voor meerdere doeleinden wordt dit gebruikt. Mijn idee is dan: je hebt toch alle gebruikers in SQL staan, waarom gebruik je SQL dan niet als users management systeem? Zeker omdat Microsoft min of meer deze mogelijkheden heeft opengezet middels CLR en C#/VB.
Op het gebied van CLR en security ben ik nog redelijk blanco.
Ha Hugo,
Bedankt voor dit duidelijke antwoord. Als ik het goed begrijp en ik schrijf die dll zelf in C#, dan vervalt een groot deel van de security risico? Volgens mij hoeft dat niet zo lastig te zijn.
Wat betreft mijn originele vraag is het misschien aardig om daar wat meer achtergrond info over te geven. Wij zijn namelijk een VO-school en op school is gebruikersbeheer wat dynamischer als in het bedrijfsleven. Wij hebben zo'n 8000 gebrluikers in de AD, waaronder leerlingen, ouders en personeel. Per schooljaar wisselt dit enorm. Immers, er gaan zo'n 1500 leerlingen van school en er komen er zo'n 1500 bij. Daardoor wijzigen ook de ouders. Geen kind op school dan ook geen account. Ook lopende het jaar heb je wijzigingen, als ik alleen al denk aan wijziging van klas (dus in een andere ad-groep). De wens komt dus juist bij ondeze netwerkadministrators vandaan. Het automatiseren van dit proces scheelt veel tijd en dus ook geld.
Onze leerlingadministratie vult in het leerlingadministratiesysteem de leerling/ouder in (SAAS-oplossing). Middels webservices worden de gegevens via SSIS ingelezen in SQL. Op dit moment hebben wij een 'cockpit' op de SQL-database staan waarin diverse parameters ingesteld kunnen worden m.b.t. AD, maar van waaruit ook wachtwoordbrieven zijn te genereren etc. Middels een tool wordt buiten schooltijd de gegevens tussen deze SQL-database en de AD onze AD bijgehouden worden. Deze SQL-db wordt breder gebruik, waaronder brieven naar ouders en invullen van ouderavonden etc.
Het doel van mijn originele vraag is dus SQL die gebruikers te laten aanmaken/disablen etc (uiteraard in de AD, authenticatie blijft AD doen etc.) i.p. v. de (dure) tool die wij nu gebruiken. De gebruikers worden dus geen SQL-account o.i.d. en krijgen ook geen rechten binnen SQL. Omdat we toch al zoveel doen binnen SQL lijkt mij dit een heel voor de hand liggende methode. Gaan we powershell gebruiken - wat misschien logischer is - dan krijg je wat meer verdeeldheid in programmatuur. Het één doet d it en het ander doet dat, waarbij je ook je (ik) kennis moet uitbreiden.
Middels openquery haal ik al de gebruikers/groepen etc. binnen. Echter, met openequery en de AD als linked server kan je nog niet editen. Wel kan je op die manier met SQL de verschillen tussen SQL en de AD in kaart brengen en hoef je dus niet alle gebruikers langs in je script om te checken op verschillen. Met C# kan je de AD wel editen en door CLR/C# kan je dat dan zelf vanuit een sp. M.i. heel krachtig. Echter, ik wil natuurlijk niet de security in gevaar brengen...
Mocht bovenstaande een dwaas idee zijn en kan het veel gemakkelijker, dan hoor ik het graag. Daarvoor heb ik deze vraag gesteld op dit forum.
Groeten,