如何在 NAV 2015 中通过 SQL 查询创建 NAV 用户

How to create NAV user by SQL Query in NAV 2015

我需要通过查询从 SQL Server 2012NAV 2015 创建一个用户。

有人知道怎么做吗?

提前致谢。

这里是答案

通过 CMD 控制台 执行

获取您的 windows SID
whoami/user

SQL 查询:

USE [YourDatabase]
DECLARE @USERSID uniqueidentifier, @WINDOWSSID nvarchar(119), @USERNAME     
nvarchar(50)
SET @USERNAME   = 'Domain\user'
SET @USERSID    = newid()
SET @WINDOWSSID = 'Your SID'

INSERT INTO [dbo].[User]
      ([User Security ID],[User Name],[Full Name],[State],[Expiry Date],
       [Windows Security ID],[Change Password],[License Type],

[Authentication Email])
VALUES
      (@USERSID,@USERNAME,'',0,'1753-01-01 00:00:00.000',@WINDOWSSID,0,0,'')

INSERT INTO [dbo].[User Property]
      ([User Security ID],[Password],[Name Identifier],[Authentication Key],    

[WebServices Key],[WebServices Key Expiry Date],[Authentication Object ID])
VALUES
      (@USERSID,'','','','','1753-01-01 00:00:00.000','')

INSERT INTO [dbo].[Access Control]
      ([User Security ID],[Role ID],[Company Name])
VALUES
      (@USERSID,'SUPER','')

GO

对于 Dynamics NAV 2018

DECLARE @USERSID uniqueidentifier, @WINDOWSSID nvarchar(119), @USERNAME nvarchar(50), 
@USERSIDTXT varchar(50)

SELECT NEWID()
SET @USERNAME = 'ServerName\Administrator'
SET @USERSID = NEWID()
SET @USERSIDTXT = CONVERT(VARCHAR(50), @USERSID)
SET @WINDOWSSID = 'YourWindowsSID'

INSERT INTO [dbo].[User] ([User Security ID],[User Name],[Full Name],[State],[Expiry Date],[Windows Security ID],[Change Password],[License Type],[Authentication Email],[Contact Email],[Exchange Identifier],[Application ID]) VALUES (@USERSID,@USERNAME,'',0,'1753-01-01 00:00:00.000',@WINDOWSSID,0,0,'','','','00000000-0000-0000-0000-000000000000')

INSERT INTO [dbo].[User Property] ([User Security ID],[Password],[Name Identifier],[Authentication Key],[WebServices Key],[WebServices Key Expiry Date],[Authentication Object ID],[Directory Role ID]) VALUES (@USERSID,'','','','','1753-01-01 00:00:00.000','','')

INSERT INTO [dbo].[Access Control]([User Security ID],[Role ID],[Company Name],[Scope],[App ID]) VALUES (@USERSID,'SUPER','','0','00000000-0000-0000-0000-000000000000')
GO

我已经使用 SQL 2016 + NAV 2018 对其进行了测试并且有效