I’m using MBS- 4.00 W1 version How come, that after installing the extended stored procedure xp_ndo_enumusersids users are still unable to use windows authentication? They receive the following message: "The extended stored procedure xp_ndo_enumusergroups in the library file xp_ndo.dll, is not available on the server. Navision W13.70 users are able to use windows authentication with groups but Navsion W14.0 users are not. Did MS or Navsion leave this functionality out of this version?
There should be a document accompanying 4.0 explaining security changes between 3.70 and 4.0, since 4.0 has undergone a full security review. There is a new xp_ndo.dll with 4.0. This dll contains a new extended stored procedure used by 4.0 - xp_ndo_enumusergroups, as well as the old one - xp_ndo_enumusersids, which support any connecting 3.70 clients. Copy the new dll over the old one (if the old one has been loaded by the server already you cannot do that, so you’ll have to DBCC unload it or shutdown the server). Then add xp_ndo_enumusergroups using Enterprise Manager or Query Analyzer. Lastly grant execute on this proc to public.
Hi Robert, I did use the new procedure and I’ve read the accompanied txt-document, which is more or less same as in earlier version. I did all that. I’ve even tried to add an extra extended stored procedure named “xp_ndo_enumusergroups” but after that, Navision gives a messages, telling me that the function “enumusergroups” does not exist. When I removed the stored procedure I got, as expected, messages from MBS W1370 that the couldn’t login. After adding the “new” dll The problem for them was resolved. But still W14.00 users can’t login with windows authentication. So I expect that something is wrong with the “new” dll. The only thing I didn’t do was to reset the SQL-Server which I can’t do during officehours. Any other suggestions?
Just adding the xp_ndo_enumusergroups to the master database worked for me. Didn’t you forget to give execute rights to guest and public?
Well I think there is some confusion here - 3.70 will not care about xp_ndo_enumusergroups being there or not because it uses xp_ndo_enumusersids. And you say you ‘even’ added an extra stored procedure ‘xp_ndo_enumusergroups’. This is not extra - it is THE stored procedure used by 4.0. Check that the new dll successfully copied over, add and EXECUTE the new proc in query analyzer: EXEC master…xp_ndo_enumusergroups ‘domain\user’ …using your domain and user name.