Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

Database Connector - Account Correlation mapping not happening

Uzair
New Contributor
New Contributor

We have a database connection for which the account correlation is not happening.

The account correlation rule has been set in the endpoint in advanced query as "users.username = accounts.name" (tried basic config with the same setup as well)

Note: A1, A2 are usernames

I have also mapped the account correlation rule in the advanced config as "users.username = 'A1'" and tired to bring in only the account A1 via import. This doesn't seem to work as well.

Additionally, I don't find any mentions of
"Associating Users and Accounts" or " Total accounts to be correlated" in the logs.

Please find the mappings as below:

1. Status and Threshold config
{
"statusAndThresholdConfig": {
"statusColumn": "customproperty20",
"activeStatus": ["512","A","1"],
"deleteLinks": true,
"accountThresholdValue": 1000,
"correlateInactiveAccounts": false,
"inactivateAccountsNotInFile": true
}
}


2. Accounts Import
<dataMapping>
<sql-query description="Import" uniquecolumnsascommaseparated="name" >
<![CDATA[select UPPER(emp.employeeID) as 'accountName', ‘SS’ as securitysystemname, ‘SS’ as endpointname, 'Groups' as entitlementtype, app.description as role, CASE when emp.status = 'A' THEN 1 ELSE 2 END AS accountstatus, emp.status as 'AccountStatusProp', emp.ModifiedDateTime from EmployeeDetails emp join EntDetails app on emp.appID=app.appID where employeeID IN (‘A1’,'A2',)]]>
</sql-query>
<incrementalcondition>
<![CDATA['${incrementalcolmaxval.format("yyyy-MM-dd")}']]>
</incrementalcondition>
<mapper description="Import" ifusernotexists="noaction" addOnlyMode="true" deleteaccountentitlement="true" dateformat="date" incrementalcolumn="ModifiedDateTime">
<mapfield saviyntproperty="accounts.name" sourceproperty="accountName" type="character"/>
<mapfield saviyntproperty="securitysystems.systemname" sourceproperty="securitysystemname" type="character"/>
<mapfield saviyntproperty="endpoints.endpointname" sourceproperty="endpointname" type="character"/>
<mapfield saviyntproperty="entitlementtypes.entitlementname" sourceproperty="entitlementtype" type="character"/>
<mapfield saviyntproperty="accounts.customproperty20" sourceproperty="AccountStatusProp" type="character"/>
<mapfield saviyntproperty="entitlementvalues.entitlementvalue" sourceproperty="role" type="character"/>
<mapfield saviyntproperty="accounts.status" sourceproperty="accountstatus" type="number"/>
</mapper>
</dataMapping>

Please can you help in identifying if there are any gaps?

Thanks in advance,
Uzair 

4 REPLIES 4

NM
Esteemed Contributor
Esteemed Contributor

Hi @Uzair, is user.username and account name has the the same value ?

Can you share the value for both the attributes?


If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'

Raghu
All-Star
All-Star

@NM  try below

<dataMapping>
<sql-query description="Import" uniquecolumnsascommaseparated="name" >
<![CDATA[select UPPER(emp.employeeID) as 'accountName','SS' as securitysystemname,'SS as endpointname, 'Groups' as entitlementtype, app.description as role, CASE when emp.status = 'A' THEN 1 ELSE 2 END AS accountstatus, emp.status as 'AccountStatusProp', emp.ModifiedDateTime from EmployeeDetails emp join EntDetails app on emp.appID=app.appID where employeeID IN ('A1','A2',)]]>
</sql-query>
<incrementalcondition>
<![CDATA['${incrementalcolmaxval.format("yyyy-MM-dd")}']]>
</incrementalcondition>
<mapper description="This is the mapping field for Saviynt Field name" checkrules="false" buildusermap="false" accountnotinfileaction="noaction" deleteaccountentitlement="false" ifusernotexists="noaction" addOnlyMode="true" dateformat="date" incrementalcolumn="accounts.customproperty5" systems="'SS' ">
<mapfield saviyntproperty="accounts.name" sourceproperty="accountName" type="character"/>
<mapfield saviyntproperty="securitysystems.systemname" sourceproperty="securitysystemname" type="character"/>
<mapfield saviyntproperty="endpoints.endpointname" sourceproperty="endpointname" type="character"/>
<mapfield saviyntproperty="entitlementtypes.entitlementname" sourceproperty="entitlementtype" type="character"/>
<mapfield saviyntproperty="accounts.customproperty20" sourceproperty="AccountStatusProp" type="character"/>
<mapfield saviyntproperty="entitlementvalues.entitlementvalue" sourceproperty="role" type="character"/>
<mapfield saviyntproperty="accounts.status" sourceproperty="accountstatus" type="character"/>
</mapper>
</dataMapping>


Thanks,
Raghu
If this reply answered your question, Please Accept As Solution and hit Kudos.

Saathvik
All-Star
All-Star

@Uzair : change this setting addOnlyMode="true" to addOnlyMode="false". this setting should fix it.

 


Regards,
Saathvik
If this reply answered your question, please Accept As Solution and give Kudos to help others facing similar issue.

Uzair
New Contributor
New Contributor

Hello Saathvik,

Thanks for this suggestion. This helped.