如何将另一个 windows 用户添加到 MS Dynamics NAV 有效用户?
How to add another windows user to MS Dynamics NAV valid user?
我从我的 windows 管理员帐户安装了 MS Dynamics NAV,并且在管理员登录时 运行 成功。但是当我从另一个帐户登录并启动 NAV(2016) 时,它显示:
you do not have access to microsoft dynamics nav .verify that you have been setup as a valid user in ms dynamics NAV.
我无法从我的 windows 帐户安装 NAV 设置,因为它没有安装任何东西的权限。
我是新手,需要帮助。
第 1 步 - 您需要 Windows 安全 ID 或 SSID
打开powershell并粘贴以下代码
$objUser = New-Object System.Security.Principal.NTAccount("YourDomain\Your ID")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value
用您的域和用户 ID 替换 YourDomain\Your ID。
运行 代码并在输出中找到 SSID。
第 2 步 - 在具有角色的 NAVISION 数据库中输入用户详细信息。
打开 SQL Server Management Studio。
在我的案例中,我想要访问的数据库是 Demo Database NAV (7-1)。
单击“新建查询”并将下面列出的命令粘贴到查询中 window。
USE [DATABASE NAME]
DECLARE @USERSID uniqueidentifier, @WINDOWSSID nvarchar(119), @USERNAME nvarchar(50), @USERSIDTXT varchar(50)
SELECT NEWID()
SET @USERNAME = 'YourDomain\Your ID'
SET @USERSID = NEWID()
SET @USERSIDTXT = CONVERT(VARCHAR(50), @USERSID)
SET @WINDOWSSID = 'Your SSID'
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
替换
DATABASE NAME - 使用您的数据库名称
YourDomain\Your ID - 包含您的域名和用户名
您的 SSID - 使用在步骤 1 中复制的 SSID
查询为用户提供超级角色,如果需要,您可以在查询的最后部分更改角色。
转到 SQL Server Management Studio
右键单击您正在使用的数据库,select 新查询并复制粘贴以下语法:
delete from [dbo].[User]
按 F5 并重新启动。它会帮助你。
使用powershell的快捷方式选项,您应该更改一些配置。
2016 年资产净值
$appUser = "XXX\XXX"; # User Name
$appUserFullName = "XXXXXxxxXX"; # FullName
$dataSource = "192.168.100.XX"; # SQL SERVER IP
$user = "sa"; # USERNAME
$pwd = "XXxxXX"; # SA Password
$database = "NAVERP"; # Database
$connectionString = "Server=$dataSource;uid=$user; pwd=$pwd;Database=$database;Integrated Security=False;";
$connection = New-Object System.Data.SqlClient.SqlConnection;
$connection.ConnectionString = $connectionString;
$objUser = New-Object System.Security.Principal.NTAccount($appUser)
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$sqlCommandText ="
USE NAVERP
DECLARE @USERSID uniqueidentifier, @WINDOWSSID nvarchar(119), @USERNAME nvarchar(50), @USERSIDTXT varchar(50), @FullName as varchar(50)
SELECT NEWID()
SET @USERNAME = '$appUser'
set @FullName = '$appUserFullName'
SET @USERSID = NEWID()
SET @USERSIDTXT = CONVERT(VARCHAR(50), @USERSID)
SET @WINDOWSSID = '$strSID'
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])
VALUES
(@USERSID,@USERNAME,@FullName,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],[App ID],Scope)
VALUES
(@USERSID,'SUPER','',cast(cast(0 as binary) as uniqueidentifier),0);
";
$connection.Open();
$command = $connection.CreateCommand();
$command.CommandText = $sqlCommandText;
$command.ExecuteNonQuery();
$connection.Close();
$sqlCommandText
我从我的 windows 管理员帐户安装了 MS Dynamics NAV,并且在管理员登录时 运行 成功。但是当我从另一个帐户登录并启动 NAV(2016) 时,它显示:
you do not have access to microsoft dynamics nav .verify that you have been setup as a valid user in ms dynamics NAV.
我无法从我的 windows 帐户安装 NAV 设置,因为它没有安装任何东西的权限。
我是新手,需要帮助。
第 1 步 - 您需要 Windows 安全 ID 或 SSID
打开powershell并粘贴以下代码
$objUser = New-Object System.Security.Principal.NTAccount("YourDomain\Your ID")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value
用您的域和用户 ID 替换 YourDomain\Your ID。
运行 代码并在输出中找到 SSID。
第 2 步 - 在具有角色的 NAVISION 数据库中输入用户详细信息。
打开 SQL Server Management Studio。
在我的案例中,我想要访问的数据库是 Demo Database NAV (7-1)。
单击“新建查询”并将下面列出的命令粘贴到查询中 window。
USE [DATABASE NAME]
DECLARE @USERSID uniqueidentifier, @WINDOWSSID nvarchar(119), @USERNAME nvarchar(50), @USERSIDTXT varchar(50)
SELECT NEWID()
SET @USERNAME = 'YourDomain\Your ID'
SET @USERSID = NEWID()
SET @USERSIDTXT = CONVERT(VARCHAR(50), @USERSID)
SET @WINDOWSSID = 'Your SSID'
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
替换 DATABASE NAME - 使用您的数据库名称 YourDomain\Your ID - 包含您的域名和用户名 您的 SSID - 使用在步骤 1 中复制的 SSID
查询为用户提供超级角色,如果需要,您可以在查询的最后部分更改角色。
转到 SQL Server Management Studio
右键单击您正在使用的数据库,select 新查询并复制粘贴以下语法:
delete from [dbo].[User]
按 F5 并重新启动。它会帮助你。
使用powershell的快捷方式选项,您应该更改一些配置。
2016 年资产净值
$appUser = "XXX\XXX"; # User Name
$appUserFullName = "XXXXXxxxXX"; # FullName
$dataSource = "192.168.100.XX"; # SQL SERVER IP
$user = "sa"; # USERNAME
$pwd = "XXxxXX"; # SA Password
$database = "NAVERP"; # Database
$connectionString = "Server=$dataSource;uid=$user; pwd=$pwd;Database=$database;Integrated Security=False;";
$connection = New-Object System.Data.SqlClient.SqlConnection;
$connection.ConnectionString = $connectionString;
$objUser = New-Object System.Security.Principal.NTAccount($appUser)
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$sqlCommandText ="
USE NAVERP
DECLARE @USERSID uniqueidentifier, @WINDOWSSID nvarchar(119), @USERNAME nvarchar(50), @USERSIDTXT varchar(50), @FullName as varchar(50)
SELECT NEWID()
SET @USERNAME = '$appUser'
set @FullName = '$appUserFullName'
SET @USERSID = NEWID()
SET @USERSIDTXT = CONVERT(VARCHAR(50), @USERSID)
SET @WINDOWSSID = '$strSID'
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])
VALUES
(@USERSID,@USERNAME,@FullName,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],[App ID],Scope)
VALUES
(@USERSID,'SUPER','',cast(cast(0 as binary) as uniqueidentifier),0);
";
$connection.Open();
$command = $connection.CreateCommand();
$command.CommandText = $sqlCommandText;
$command.ExecuteNonQuery();
$connection.Close();
$sqlCommandText