2016-04-29 13 views
0

Ich habe MS Dynamics NAV von meinem Windows Admin-Konto installiert und es läuft erfolgreich auf Admin-Login. Aber wenn ich von einem anderen Konto anmelden und starten NAV (2016), Es zeigt:Wie füge ich einen anderen Windows-Benutzer zu MS Dynamics NAV gültigen Benutzer hinzu?

you do not have access to microsoft dynamics nav .verify that you have been setup as a valid user in ms dynamics NAV. 

ich nicht NAV-Setup installieren kann von meinem Fenster als Es-Konto keine Berechtigung hat, etwas zu installieren.

Ich bin total neu dazu, brauche Hilfe.

+0

Was mit falsch Antworten Google gibt Ihnen mit zwei ersten Links? [Benutzer hinzufügen] (https://community.dynamics.com/nav/b/sauravdhyanimicrosoftdynamicsnav/archive/2015/12/10/add-user-to-microsoft-dynamics-nav-2016-database). [RTFM] (https://msdn.microsoft.com/de-de/library/dd355093.aspx) –

Antwort

1

Schritt 1 - Sie werden

Öffnen von Powershell und fügen Sie den folgenden Code, um die Windows-Sicherheits-ID oder SSID müssen

$objUser = New-Object System.Security.Principal.NTAccount("YourDomain\Your ID") 
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier]) 
$strSID.Value 

ersetzen IhreDomäne \ Ihre ID mit Ihrer Domain und ID USER.

Führen Sie den Code und in der Ausgabe finden Sie die SSID.

SCHRITT 2 - BENUTZER EINGEBEN Details in NAVISION Datenbank mit Rollen.

Öffnen Sie SQL Server Management Studio.

In meinem Fall ist die Datenbank, die ich zugreifen möchte, Demo-Datenbank NAV (7-1).

Klicken Sie auf Neue Abfrage und fügen Sie den unten aufgeführten Befehl in das Abfragefenster ein.

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 

ersetzen DATABASE NAMEN - mit dem Datenbanknamen IhreDomäne \ Ihre ID - mit Ihrem Domain Name & Benutzername Ihre SSID - mit SSID wie in STEP 1 kopiert

Die Abfrage bietet SUPER Rolle Benutzer können Sie bei Bedarf die Rolle im letzten Teil der Abfrage ändern.

0

Zum SQL Server Management Studio

Rechts auf Datenbank klicken Sie verwenden, wählen Sie neue Abfrage kopieren und einfügen unten Syntax:

 delete from [dbo].[User] 

F5 drücken und neu starten. Es wird dir helfen .

0

Schnelle Möglichkeit mit Powershell, sollten Sie einige Konfigurationen ändern.

Für NAV 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