简体   繁体   English

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

[英]How to create NAV user by SQL Query in NAV 2015

I need create a user for NAV 2015 from SQL Server 2012 by query.我需要通过查询从SQL Server 2012创建NAV 2015的用户。

Anyone know how to do this?有谁知道如何做到这一点?

Thanks in advance.提前致谢。

For Dynamics NAV 2018对于 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

I have tested it with SQL 2016 + NAV 2018 and works我已经使用 SQL 2016 + NAV 2018 对其进行了测试并且可以正常工作

Here the answer答案在这里

Get your windows SID by CMD console execute通过CMD 控制台执行获取您的Windows SID

whoami/user

SQL Query: 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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM