Anda di halaman 1dari 2

Basic SQL - Creating Extended Stored

Procedure / xp_ndo.dll
Anonymous Wed, Nov 5 2008 6:43 AM

This post is part of "Overview of NAV-specific SQL features for application consultants".

Microsoft Dynamics NAV requires two extended stored procedures from xp_ndo.dll to exist on SQL Server if
Windows logins are used. If these extended stored procedures do not exist, you will get this error when
trying to log on using Windows Authentication:
--The extended stored procedure xp_ndo_enumusersids in the library file xp_ndo.dll, is not available on the
LOHNDORF1 server. Until this procedure and library have been added, it will not be possible to connect to
this server from Microsoft Dynamics NAV with Windows Authentication, but you will still be able to connect
with Database Server Authentication. You can read more about adding this extended stored procedure in
the help pages on the product CD. Follow the hyperlink to the readme.txt file on the Servers page under the
Documentation section of SQL Server.
---

When this happens you have two options: Use Database Authentication instead, or create the extended
stored procedures on the SQL Server. a normal installation of a NAV client will create these procedures
automatically, which is why in most cases you dont need to do it. But if for some reason it was not created,
then this is how to do it manually:
1) From the product DVD, open the folder sql_esp, and run the file xp_ndo.exe to extract the file
xp_ndo.dll somewhere you your disk. Then copy it into this folder on your SQL Server (on SQL 2008):
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\. Remember, copying
files into the Program Files-folder requires administrative privileges on Vista and Windows2008, which is
why you should extract the file to a different folder first, and then copy it into this location.
2)
Open SQL Server Management Studio. Extend Databases -> System Databases -> master ->
Programmability. Right click on Extended stored procedures, and select New extended stored procedure.
3) Name it xp_ndo_enumusersids, and in the DLL field, select the full file and path for xp_ndo.dll (on SQL
Server 2008 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\xp_ndo.dll):

4)
Assign permissions to the public role: In the Extended Stored Procedures properties, click on
Permissions, then Search. Type in Public, and click OK. Then assign Execute permissions to Public:

5)
Finally, repeat the previous steps and make another extended stored procedure which is exactly
identical, except this one must be called xp_ndo_enumusergroups instead of xp_ndo_enumusersids.
You should now have two extended stored procedures, and should be able to use Windows login from NAV.

Lars Lohndorf-Larsen
Microsoft Dynamics UK
Microsoft Customer Service and Support (CSS) EMEA
These postings are provided "AS IS" with no warranties and confer no rights. You assume all risk for your
use.

Anda mungkin juga menyukai