kan geen database openen “Test” gevraagd door de inloggen. De login is mislukt. Inloggen is mislukt voor gebruiker ‘xyz \ aspnet’

Ik heb een webservice gemaakt die sommige gegevens opslaat in DB. Maar ik krijg deze foutmelding:

Kan de database “Test” niet openen door de inloggen. De login is mislukt. Login mislukt voor gebruiker ‘xyz \ aspnet’.

Mijn verbindingsstring is

Data Source=.\SQLExpress;Initial Catalog=IFItest;Integrated Security=True

Antwoord 1, Autoriteit 100%

Nou, de fout is vrij duidelijk, nee? U probeert verbinding te maken met uw SQL Server met gebruiker “XYZ / ASPNET” – dat is het account waarop uw ASP.NET-app wordt uitgevoerd.

Dit account is niet toegestaan ​​om verbinding te maken met SQL Server – Maak een aanmelding op SQL Server voor dat account of geef dan nog een geldig SQL Server-account op in uw verbindingstekenreeks.

Kunt u ons uw verbindingsreeks laten zien (door uw oorspronkelijke vraag bij te werken)?

Update: OK, u gebruikt geïntegreerde Windows-authenticatie – & GT; U moet een SQL Server-login maken voor “XYZ \ ASPNET” op uw SQL Server – of uw verbindingsstring wijzigen op zoiets:

connectionString="Server=.\SQLExpress;Database=IFItest;User ID=xyz;pwd=top$secret"

Als u een gebruiker “XYZ” hebt met een wachtwoord van “TOP $ SECEST” in uw database.


Antwoord 2, Autoriteit 71%

  • Ofwel: “XYZ \ ASPNET” is geen login (in Sysserver_principes)
  • of: “XYZ \ ASPNET” is ingesteld maar niet in kaart gebracht in de database-test (Sys.database_principes)

Ik zou voor de 2e optie gaan: het foutbericht impliceert de standaarddatabase is daar niet of geen rechten in het, in plaats van niet in te stellen als een login.

Om te testen of het is ingesteld als login

SELECT SUSER_ID('xyz\ASPNET') -- (**not** SUSER_SID)

Indien NULL

CREATE LOGIN [xyz\ASPNET] FROM WINDOWS

Indien niet NULL

USE test
GO
SELECT USER_ID('xyz\ASPNET')

Indien NULL

USE test
GO
CREATE USER [xyz\ASPNET] FROM LOGIN [xyz\ASPNET]

Antwoord 3, autoriteit 25%

Ik had dit probleem en wat het voor mij oploste was:

  • Ga naar de Application Pools in de IIS
  • Klik met de rechtermuisknop op mijn projecttoepassingspool
  • In Process Model sectie open Identiteit
  • Kies een aangepaste accountoptie
  • Voer uw pc-gebruikersnaam en wachtwoord in.

Antwoord 4, autoriteit 18%

De beste oplossing voor het inlogprobleem is om een inloggebruiker aan te maken in sqlServer. Hier zijn de stappen om een SQL Server-login te maken die gebruikmaakt van Windows Authentication (SQL Server Management Studio):

  1. Open in SQL Server Management Studio Objectverkenner en vouw de map uit
    de serverinstantie waarin de nieuwe login moet worden gemaakt.
  2. Klik met de rechtermuisknop op de map Beveiliging, wijs Nieuw aan en klik vervolgens op Aanmelden.
  3. Voer op de pagina Algemeen de naam van een Windows-gebruiker in het vak Aanmeldingsnaam in.
  4. Selecteer Windows-verificatie.
  5. Klik op OK.

Als de gebruikersnaam bijvoorbeeld xyz\ASPNETis, voer deze naam dan in in Login name Box.

U moet ook de gebruikerstoewijzing wijzigen om toegang te verlenen tot de database waartoe u toegang wilt.


Antwoord 5, autoriteit 18%

Meestal is het geen inlogprobleem, maar een probleem met het maken van de database zelf. Dus als er een fout is opgetreden bij het maken van uw database, zou deze in de eerste plaats niet worden gemaakt. In dat geval zou het inloggen mislukken als u probeerde in te loggen, ongeacht de gebruiker. Dit gebeurt meestal als gevolg van een logische verkeerde interpretatie van de db-context.

Bezoek de site in een browser en lees ECHT die foutenlogboeken, dit kan u helpen het probleem met uw code op te sporen (meestal tegenstrijdige logische problemen met het model).

In mijn geval was de code prima gecompileerd, hetzelfde inlogprobleem, terwijl ik nog steeds Management Studio aan het downloaden was, ging ik door het foutenlogboek, loste mijn db-contextbeperkingen op en de site begon goed te werken… ondertussen is Management Studio nog steeds downloaden


Antwoord 6, autoriteit 18%

Voor mij is de database niet gemaakt en had EF-code deze eerst moeten maken, maar altijd in deze fout. Dezelfde verbindingsreeks werkte in het standaardwebproject van aspnet core. De oplossing was om

. toe te voegen

_dbContext.Database.EnsureCreated()

vóór het eerste databasecontact (vóór DB seeding).


Antwoord 7, autoriteit 10%

Het probleem

De fout doet zich voor als een bericht dat er ongeveer zo uitziet:

Kan de database “DATABASE NAME” die door de login is aangevraagd niet openen. De login
mislukt. Inloggen mislukt voor gebruiker XYZ.

  • De fout kan meestal niet worden verholpen door een simpele Visual Studio of een volledige herstart van de computer.
  • De fout kan ook worden gevonden als een schijnbaar vergrendeld databasebestand.

De oplossing

De oplossing wordt in de volgende stappen gelegd. U verliest geen gegevens in uw database en u mag uw databasebestand niet verwijderen!

Vereiste: u moet SQL Server Management Studio (Full of Express) hebben geïnstalleerd

  1. SQL Server Management Studio openen
  2. Voer in het venster “Verbinden met server” (File->Verbind objectverkenner) het volgende in:
    • Servertype: Database Engine
    • Servernaam: (localdb)\v11.0
    • Authenticatie: [Wat je ook hebt gebruikt bij het maken van je lokale db. Waarschijnlijk Windows-verificatie).
  3. Klik op “Verbinden”
  4. Breid de map “Databases” uit in de Objectverkenner (View->Object Explorer, F8)
  5. Zoek uw database. Het moet worden genoemd als het volledige pad naar uw databasebestand (.mdf)
    • U zou moeten zien dat er “(Pending Recovery)” staat aan het einde van de databasenaam of wanneer u de database probeert uit te breiden, kan dit niet en kan het u wel of geen foutmelding geven.
    • Dit is het probleem! Je database is in wezen gecrasht..
  6. Klik met de rechtermuisknop op de database en selecteer “Taken -> Detach…”.
  7. Selecteer in het ontkoppelvenster uw database in de lijst en vink de kolom aan met de tekst “Verbindingen verwijderen”
  8. Klik op OK.
  9. Je zou de database moeten zien verdwijnen uit de lijst met databases. Uw probleem zou nu verholpen moeten zijn. Start uw applicatie die uw localdb gebruikt.
  10. Na het uitvoeren van uw toepassing, zal uw database opnieuw verschijnen in de lijst met databases – dit is correct. Er zou geen “In afwachting van herstel” meer moeten staan, omdat het correct zou moeten werken.

De bron van de oplossing:https://www.codeproject.com/Tips/775607/How-to-fix-LocalDB-Requested-Login-failed


Antwoord 8, autoriteit 8%

Ik heb geprobeerd de gebruiker bij te werken en het is gelukt. Zie de opdracht hieronder.

USE ComparisonData// databaseName
EXEC  sp_change_users_login @Action='update_one', @UserNamePattern='ftool',@LoginName='ftool';

Vervang gewoon user('ftool')dienovereenkomstig.


Antwoord 9, autoriteit 6%

Dit werkt voor mij.

  1. Ga naar SQL Server >> Beveiliging >> Logins en klik met de rechtermuisknop op NT AUTHORITY\NETWORK SERVICE en selecteer Eigenschappen
  2. Ga in het nieuw geopende scherm van Aanmeldingseigenschappen naar het tabblad “Gebruikerstoewijzing”.
  3. Selecteer vervolgens op het tabblad “Gebruikerstoewijzing” de gewenste database, met name de database waarvoor deze foutmelding wordt weergegeven.
  4. Klik op OK.

Lees deze blog.

http://blog.sqlauthority.com/2009/08/20/sql-server-fix-error-cannot-open -database-requested-by-the-login-the-login-failed-login-failed-for-user-nt-authoritynetwork-service/


Antwoord 10, autoriteit 6%

Het gebeurt ook als u de verkeerde naam van DB typt

ex : xxx-db-dev to xxx-dev-db

Soms is het gewoon een domme fout . Ik heb ongeveer meer dan 1 uur nodig om dit te weten te komen 🙁 omdat ik eerst heel veel moeilijke dingen probeer


Antwoord 11, autoriteit 4%

Ik heb Windows-authenticatie gebruikt om verbinding te maken met het .mdf-bestand van de lokale database en
mijn lokale server was sql-server 2014.
Mijn probleem is opgelost met deze verbindingsreeks:

string sqlString = " Data Source = (LocalDB)\\MSSQLLocalDB;" + "AttachDbFilename = F:\\.........\\myDatabase.mdf; Integrated Security = True; Connect Timeout = 30";

Antwoord 12, autoriteit 4%

In mijn geval is het een ander probleem. De database ging over op de modus voor één gebruiker en een tweede verbinding met de database liet deze uitzondering zien.
Volg onderstaande stappen om dit probleem op te lossen.

  1. Zorg ervoor dat de objectverkenner naar een systeemdatabase zoals master verwijst.
  2. Voer een exec sp_who2uit en vind alle verbindingen met de database ‘my_db’. Schakel alle verbindingen uit door KILL { session id }te doen, waarbij session id de SPID is die wordt vermeld door sp_who2.
USE MASTER;
EXEC sp_who2
  1. Wijzig de database
USE MASTER;
ALTER DATABASE [my_db] SET MULTI_USER
GO

Antwoord 13, autoriteit 2%

Ik heb dit in de vorige nummers niet genoemd, dus laat me een andere mogelijkheid weggooien. Het kan zijn dat IFItestniet bereikbaar is of simpelweg niet bestaat. Als men bijvoorbeeld een aantal configuraties heeft, elk met een eigen database, kan het zijn dat de databasenaam niet is gewijzigd in de juiste voor de huidige configuratie.


Antwoord 14, autoriteit 2%

NB: Als u een Windows-service gebruikt om de webservice te hosten.

U moet ervoor zorgen dat uw webservice het juiste aanmeldingsaccount gebruikt om verbinding te maken met SQL Server.

  • Open services (ik neem aan dat de Windows-service is geïnstalleerd)
  • Klik met de rechtermuisknop op de service en ga naar eigenschappen.
  • Klik op het tabblad “Aanmelden”
  • Klik op “Dit account” -koets
  • Klik op “Bladeren”
  • Voer de PC-gebruikersnaam in het tekstveld in en klik op de knop “Naam controleren” rechts.
  • Klik op de tekst in de tekst in tekst, druk op de knop “OK”
  • Voer inlogwachtwoord in en breng
  • toe


Antwoord 15, Autoriteit 2%

Geïnspireerd door het antwoord van Cyptus, gebruikte ik

_dbContext.Database.CreateIfNotExists();

op EF6 vóór de eerste databasecontact (vóór db-zaaiing).


Antwoord 16, Autoriteit 2%

Als u de database niet in uw server hebt gemaakt, krijgt u dezelfde aanmeldingsfout. Make zeker dat de database bestaat voordat u inlogt.


Antwoord 17, Autoriteit 2%

Ik liep dit probleem in bij een poging om te schrijven naar de standaarddatabase die is opgegeven in de ASP.NET MVC-sjabloon. Dit was te wijten aan het feit dat de database nog niet was gemaakt.

Om de database te maken en ervoor te zorgen dat het toegankelijk is, volgt u deze stappen:

  1. Open de console van de pakketbeheerder in Visual Studio
  2. Voer de opdracht “Update-database”
  3. uit

Hiermee maakt u de database een uitvoering van alle nodige migraties erop.


Antwoord 18, Autoriteit 2%

Het is meestal geen login-probleem. De database is mogelijk niet gemaakt. Om de database te maken, gaat u naar DB Context-bestand en voegt dit toe.Database.ensurfecreated ();


Antwoord 19, Autoriteit 2%

Ik had dit probleem toen ik een WPF Core + Entity Framework Core Project heeft gemaakt en vervolgens op een nieuwe laptop kloneren.

Gebruik:

update-database

In de console van de pakketbeheerder loste het eenvoudig op.

Om Pakket Manager Console te openen Ga naar:

Tools-> Nuget Package Manager -> Package Manager console

Antwoord 20

De beste optie zou zijn om geïntegreerde Windows-verificatie te gebruiken, omdat dit veiliger is dan SQL-verificatie. Maak een nieuwe Windows-gebruiker in de sql-server met de nodige machtigingen en wijzig de IIS-gebruiker in de beveiligingsinstellingen van de toepassingsgroep.


Antwoord 21

Ik ontdekte dat ik ook de UserMapping-optie moest instellen bij het maken van een nieuwe login en dit loste het probleem voor mij op. Ik hoop dat dit iedereen helpt die ook hier vastzat!

Bewerken: het instellen van de login als db-eigenaar loste ook het volgende probleem op


Antwoord 22

Soms kan dit probleem optreden als u deze db opent in een andere sql-server (u start bijvoorbeeld sql management studio (SMS) en voegt deze db toe) en vergeet deze server te stoppen. Als resultaat – je app probeert verbinding te maken met de gebruiker die al is verbonden in deze db onder een andere server. Om dat op te lossen, probeert u deze server te stoppen door Config. dispatcher sql-server.

Mijn excuses voor slecht Engels.
Met vriendelijke groet, Ignat.


Antwoord 23

In mijn geval kan de asp.net-toepassing meestal zonder problemen verbinding maken met de database. Ik zag zo’n bericht in logboeken. Ik schakel de SQL-serverlogboeken inen Ik ontdek dit bericht:

2016-10-28 10:27:10.86 Logon       Login failed for user '****'. Reason: Failed to open the explicitly specified database '****'. [CLIENT: <local machine>]
2016-10-28 10:27:13.22 Server      SQL Server is terminating because of a system shutdown. This is an informational message only. No user action is required.

Het lijkt er dus op dat de server opnieuw opstartte en dat de SQL-server iets eerder was afgesloten dan de ASP.NET-toepassing en dat de database enkele seconden niet beschikbaar was voordat de server opnieuw werd opgestart.


Antwoord 24

Zelfs als je de login hebt ingesteld als DB-eigenaar en de gebruikerstoewijzing hebt ingesteld voor de database die de login zal gebruiken, controleer dan of de daadwerkelijke DB-gebruiker (niet alleen de login) de rol van ‘eigenaar’ heeft.

p>


Antwoord 25

In mijn geval draaide ik een Windows-service onder de identiteit “Systeem”. De fout was:

System.Data.SqlClient.SqlException (0x80131904): 
Cannot open database "MyDbName" requested by the login. The login failed.
Login failed for user 'MYDOMAINNAME\HOSTNAME$'.

Het probleem is dat de fout erg misleidend is. Zelfs nadat ik de login ‘MYDOMAINNAME\HOSTNAME$’ aan de database had toegevoegd en deze login sysadmin-toegang had verleend en een gebruiker voor die login aan mijn doeldatabase had toegevoegd, en die gebruiker dbowner had gemaakt, kreeg ik nog steeds dezelfde fout.
Blijkbaar moest ik hetzelfde doen voor ‘NT AUTHORITY\SYSTEM’ login. Nadat ik dat had gedaan, kon ik zonder problemen inloggen. Ik weet niet waarom de foutmelding klaagt over ‘MYDOMAINNAME\HOSTNAME$’. Ik heb die login en de bijbehorende gebruiker verwijderd en alles werkt nog steeds.


Antwoord 26

Als u EF Code First gebruikt, zorg er dan voor dat de database bestaat. Je zou eerst het update-database commando kunnen uitvoeren.

Other episodes