onze sponsors
Hallo,
Momenteel ben ik bezig bij een klant voor de migratie van SQL2000 en SQL 2005 databases naar SQL2008. Dit is een onderdeel van een groter project waarbij ook de huidige filedata en werkplekken worden gemigreerd.
Hierbij wordt overgegaan van domain ABC naar domain XYZ. Bij de migratie van de accounts, filedata en werkplekken wordt gebruik gemaakt van SID history. Tussen domain ABC - XYZ ligt een full 2-way trust.
Niet direct van belang maar om mijn nieuwschierigheid te lessen heb ik de volgende vraag:
Situatie:
Database DB01 staat op een server in het ABC domain. Users zijn met hun ABC\ geauthenticeerd op de database. Op de database zijn rollen gedifineerd waarvan de ABC\ users members zijn.
Nu wordt de gebruiker ABC\JJansen zijn user account en zijn werkplek gemigreerd naar het XYZ domain. Hij logt dus voortaan aan op zijn werkplek met het account YXZ\JJansen.
SID History staat aan dus als hij vanaf zijn nieuwe werkplek een database koppeling maakt naar de DB01 die nog in het ABC domain staat en alleen zijn ABC\JJansen login bevat kan hij de database bereiken via de SidHistory. In profiler security audit zie je XYZ\JJansen als user een verbinding maken en authentiseren. Alle rechten via de rollen (standard en custom) die de ABC\JJansen member van is zijn ook van toepassing voor als wordt ingelogt met XYZ\JJansen....
Nu echter wordt er in de applicatie functionaliteit vrij gegeven op basis van de user roles en een additionele tabel bevoegdheden. Dit wordt gedaan door een query:
select * from bevoeg, users where bevoeg.gid = users.gid and users.uid = user_id()
En hier gaat het nu mis, de functie user_id() herleid niet met SidHistory. Eigenlijk staat er:
SELECT * from bevoeg, users where bevoeg.gid = users.gid and users.uid = user_id('XYZ\JJansen')
Om dit te laten functioneren moet er op de database ook de login voor XYZ\JJansen worden aangemaakt met lidmaatschap voor dezelfde rollen als ABC\JJansen
Mijn vraag is nu wat zou je als applicatie ontwikkelaar moeten doen om rekening te houden met migraties over verschillende domeinen?
Kijk mijn migratie van de databases lost dit uiteindelijk vanzelf op omdat ik het domain account ABC ga vervangen door XYZ nu moet ik echter in deze tussen fase mij ook gaan bemoeien met de werkplek en user account migratie om alles op de database dubbel te authentiseren. Is er voor programmeurs een eenduidige oplossing of tip?
Gr,
Arjan
aangezien ik de post niet kan bijwerken: windows groep(en) -> databaserol -> tabellen en andere db objecten is wat ik bedoel.
dus databaserol veranderd niet en abc en xyz groepen hebben toegang via de dbrol.
Hoi Arjan,
Wat geeft ORIGINAL_LOGIN() terug ?
Groeten,
André