Установка хранимых процедур в sql для NAV
Feb. 5th, 2013 10:30 amThe extended stored procedure xp_ndo_enumusersids in the library file xp_ndo.dll, is not available
The extended stored procedure xp_ndo_enumusergroups in the library file xp_ndo.dll, is not available
Полный текст может звучать так:The extended stored procedure xp_ndo_enumusersids in the library file xp_ndo.dll, is not available on the NAME 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.
Или так:
Что делать в этом случае:
1. Берём дистрибутив с NAV (MS Dynamics NAV).
2. Ищем там папку SQLDatabase, в ней PFiles, в ней ещё подпапки.
3. Копируем оттуда файл xp_ndo.dll или xp_ndo_x64.dll, в зависимости от разрядности.
4. Кладём его туда, откуда он будет запускаться на SQL-сервере. Логичнее всего к прочим dll-кам экземпляра, а именно %Program Files%\Microsoft SQL Server\INSTANCENAME\MSSQL\Binn
5. Запускаем Microsoft SQL Server Management Studio, заходим в наш инстанс.
6. Databases => system databases => master => Programmability => Extended stored procedures. Правой мышкой по Extended stored procedures, выбираем New extended stored procedure.
7. Создаём новую процедуру с именем xp_ndo_enumusersids, подсовываем ей нашу dll. Точно также создаём xp_ndo_enumusergroups, с тем же dll.
8. Заходим в permissions обеих dll, search, вводим public. Назначаем права Execute (grant).
9. Профит:)
#Разумеется, вместо пунктов 5-9 можно просто выполнить sql-скрипт, а именно:
USE master
EXEC sp_addextendedproc xp_ndo_enumusersids, ‘C:\%FOLDER%\xp_ndo.dll’
GO
GRANT EXECUTE
ON [xp_ndo_enumusersids]
TO PUBLIC
GO
USE master
EXEC sp_addextendedproc xp_ndo_enumusergroups, ‘C:\%FOLDER%\xp_ndo.dll’
GO
GRANT EXECUTE
ON [xp_ndo_enumusergroups]
TO PUBLIC
GO