Toon posts:

[ASP.NET/MSDE] Probleem met connecten van database

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb hierzo een MSDE database met SQL Buddy tool. IIS 5.0 is de webserver, zoals misschien al bekend heb ik certificaten geinstalleerd en gebruik ik basic authentication om aspx bestanden te kunnen laden.

Nu heb ik een database aangemaakt en probeer ik deze te connecten dmv een aspx pagina. Maar ik krijg elke keer een error. Er zijn inderdaad duizend en één threads over dit onderwerp, maar de oplossingen daarvan vind ik maar niks.

De database is geinstalleerd met de volgende parameters:
SAPWD="bla"
DISABLENETWORKPROTOCOLS="0"
INSTANCENAME="DotCom"
DATADIR="D:\MSDE"
TARGETDIR="D:\MSDE"

Als ik de volgende connection string gebruik:
code:
1
myConnection.ConnectionString = "server=localhost;database=MIS;User Id=dominique;Password=compaq;Trusted_Connection=True;";

Dan krijg ik ten allen tijde deze error: Aanmelding mislukt voor gebruiker WEBSERVER01\ASPNET.

Gebruik ik deze connection string:
code:
1
myConnection.ConnectionString = "server=localhost;database=MIS;User Id=dominique;Password=compaq;";

Dan krijg deze error: Aanmelding mislukt voor gebruiker dominique. Reden: niet gekoppeld met een vertrouwde SQL Server-verbinding.

Het maakt niet uit of ik user sa gebruik of elke andere user. Het is niet de bedoeling dat ik de user ASPNET rechten ga geven in de database.

Het is de bedoeling dat de user die inlogt, dat die bepaalde rechten krijgt in de database.

Ik heb al allerlei sites bekeken, maar die opties die daar gegeven werden werkten niet of opties die niet relevant zijn voor mijn eisen.

Iemand enig idee wat ik fout doe? Of het uberhaupt wel werkt en eventuele alternatieve ideeen waarmee ik hetgene krijg wat ik wil.

Alvast bedankt

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:08
Je moet MSDE zo configureren dat mixed authentication is toegestaan.

Als je MSDE installeert zonder specifiek op te geven dat je Sql Server authentication wilt ondersteunen (inloggen dus met Sql Server accounts zoals sa, etc....), dan ondersteunt hij enkel Windows Integretated Security.

Je kan trouwens, als je gebruik maakt van Windows Integrated Security ook inloggen op je databank vanaf asp.net, maar dan moet je de ASPNET user account wel toegang geven op je databank.

[ Voor 76% gewijzigd door whoami op 26-03-2004 11:45 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ehhh...waarom is mixed authentication dan belangrijk? Ik wil alleen de windows authentication gebruiken.

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:08
Verwijderd schreef op 26 maart 2004 @ 11:44:
Ehhh...waarom is mixed authentication dan belangrijk? Ik wil alleen de windows authentication gebruiken.
Waarom doe je het dan niet?
Als je inlogged met sa, is dat geen Windows Authentication (je 2de foutmelding dus).

Je eerste foutmelding heeft hier mee te maken:
Ah, ik zie het. Je wilt dus met de ASPNET user account inloggen op die databank (zoals ik in m'n vorige post al zei).
Je moet die ASPNET account dus nog access geven op je DB.

[ Voor 32% gewijzigd door whoami op 26-03-2004 11:47 ]

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Je moet de server in mixed mode authentificatie zetten. Hoe je dit doet met T-SQL code of SQL buddy weet ik helaas niet.

Je kunt een SQL Server of MSDE installatie op 2 manieren instellen. Alleen windows authentificatie of zowel windows als sql server login mode.

offtopic:
edit: spuit 111 :X

[ Voor 7% gewijzigd door P_de_B op 26-03-2004 11:46 ]

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
hrmmm, het maakt niet uit wat voor een connection string ik gebruik, die windows authenticatie werkt gewoon nooit. Misschien foute connection string voorbeelden gegeven.

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:08
Als je integrated Windows security gebruikt, dan gebruik je idd best een andere connectionstring.
Kijk hier eens op: www.connectionstrings.com


Zoiets:
code:
1
s = "Data Source=server;initial catalog=databasename;integrated security=SSPI;";



Je kan je connectiestring trouwens beter in je web.config zetten, en 'm vandaar ophalen.

Je moet zowiezo de aspnet user account toegang geven.

[ Voor 36% gewijzigd door whoami op 26-03-2004 11:51 ]

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Verwijderd schreef op 26 maart 2004 @ 11:47:
hrmmm, het maakt niet uit wat voor een connection string ik gebruik, die windows authenticatie werkt gewoon nooit. Misschien foute connection string voorbeelden gegeven.
Je wilt toch juist geen windows authenticatie?

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Om de pagina op te vragen moet je al inloggen met een geldig user account op het locale domein. Ik wil dit geheel koppelen aan de database. In andere woorden, één keer username & wachtwoord invullen en gelijk de juiste rechten op de database.

Hoe dit precies gebeurd maakt op zich niet zo heel veel uit, maar aangezien windows authenticatie op de database mogelijk is, lijkt mij dit de makkelijkste manier.

Als ik dat ASPNET user account toegang geef tot de database, dan heeft het inloggen toch geen zin meer (correct me if I'm wrong). Dan zou ik die user alle rechten moeten geven, wat niet de bedoeling is.

edit:

Heb allerlei andere connection strings geprobeerd, ik moest wat posten. In het geval waar dat de connection string staat, dat maakt momenteel niet zo heel veel uit, het moet eerst werken :)

[ Voor 16% gewijzigd door Verwijderd op 26-03-2004 11:57 ]


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
aha, jij wilt Impersonation!

Oops! Google Chrome could not find www.rijks%20museum.nl


  • whoami
  • Registratie: December 2000
  • Laatst online: 14:08
Verwijderd schreef op 26 maart 2004 @ 11:54:
Om de pagina op te vragen moet je al inloggen met een geldig user account op het locale domein. Ik wil dit geheel koppelen aan de database. In andere woorden, één keer username & wachtwoord invullen en gelijk de juiste rechten op de database.

Hoe dit precies gebeurd maakt op zich niet zo heel veel uit, maar aangezien windows authenticatie op de database mogelijk is, lijkt mij dit de makkelijkste manier.

Als ik dat ASPNET user account toegang geef tot de database, dan heeft het inloggen toch geen zin meer (correct me if I'm wrong). Dan zou ik die user alle rechten moeten geven, wat niet de bedoeling is.
Het is de ASP.NET applicatie die een connectie gaat maken met de databank, dus is het de ASPNET user account die uiteindelijk verbinding maakt met de databank.
Als je je webapp wilt beveiligen zoals je beschrijft, kan je ook eens kijken naar Windows Authentication binnen ASP.NET.
Daarmee krijgen gebruikers dus enkel toegang tot een pagina, als ze aangelogd zijn bij Windows.

https://fgheysels.github.io/


Verwijderd

Topicstarter
hrmmm, waarom ben ik dat artikel niet tegengekomen?

dat gehele windows authenticatie is dus een beetje bullshit zonder impersonatie?

edit:

Als ik de pagina's zou beveiligen, dan zou ik veel meer in de pagina's moeten controleren, wat natuurlijk niet mijn voorkeur is. Maar als er geen andere mogelijkheid is, waarom niet... Als je in de database al geen permissie krijgt, dat lijkt mij het makkelijkste.

[ Voor 52% gewijzigd door Verwijderd op 26-03-2004 12:01 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 14:08
Verwijderd schreef op 26 maart 2004 @ 11:58:
hrmmm, waarom ben ik dat artikel niet tegengekomen?

dat gehele windows authenticatie is dus een beetje bullshit zonder impersonatie?
Nee, Windows Authentication op ASP.NET niveau zorgt ervoor dat enkel aangelogde gebruikers bij Windows je pagina's kunnen bezoeken. (Dit heeft dus niets met je databank te maken).
Het ASP.NET wp maakt de connectie met de databank, niet de gebruiker zelf.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 14:08
Verwijderd schreef op 26 maart 2004 @ 11:58:
edit:
Als ik de pagina's zou beveiligen, dan zou ik veel meer in de pagina's moeten controleren, wat natuurlijk niet mijn voorkeur is. Maar als er geen andere mogelijkheid is, waarom niet... Als je in de database al geen permissie krijgt, dat lijkt mij het makkelijkste.
In je pagina's controleren? :?
Als je Windows Authentication gebruikt, geef je in je web.config aan welke gebruikers/groepen er op welke pagina's mogen komen.
Je hoeft er helemaal niets voor te proggen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
hrmm, ik wil dus dat de ingelogde user de connectie ligt met de database. Is dat mogelijk met impersonation? Heb nog geen tijd genomen om het artikel te lezen, give me a moment please :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:08
Mogen niet ingelogde gebruikers op je website?

Je zult misschien toch met die impersonation moeten spelen, als je wilt dat bepaalde gebruikers/groepen andere rechten hebben op die databank enzo, dan zal je idd met impersonation moeten spelen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
gebruikt SSL die zoiezo controleert op geldige certificaten, vervolgens moet je jezelf authenticeren dmv basic authentication. In andere woorden, zonder geldig local domain user account kom je er niet in (op de legale manier dan). Via dat account wil ik eigenlijk toegang tot de database krijgen.

edit:

en rechten toewijzen in de database

[ Voor 9% gewijzigd door Verwijderd op 26-03-2004 12:16 ]


Verwijderd

Topicstarter
Impersonation enabled.

User dominique krijgt geen toegang, met de volgende connection string:
server=localhost;database=MIS;Trusted_Connection=True;

Vervolgens heb ik handmatig de user aangemaakt & access granted, maar nog steeds krijg ik dezelfde error:
Kan de database niet openen die in aanmelding MIS is gevraagd. Aanmelding is mislukt. Aanmelding mislukt voor gebruiker DOTCOMPANY\dominique.

Vervolgens heb ik maar een ander tooltje gedownload om naar de users te kijken etc -> Microsoft SQL Web Data Administrator

Maar als ik die wil openen dan krijg ik deze error:
Error message 401.2.: You do not have permission to view this directory or page using the credentials you supplied.

Ik heb gewoon volledige rechten op deze pagina's, dus ik snap er echt helemaal niets meer van. Ik krijg het idee dat mijn IIS gewoon fucked up is.

[ Voor 14% gewijzigd door Verwijderd op 26-03-2004 14:28 ]


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
heeft de gebruiker DOTCOMPANY\dominique wel rechten op de betreffende server en database?

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
het feit dat ik de pagina kan opvragen betekent automatisch al dat ik voldoende rechten heb op de server.

De database heb ik aangepast dmv osql...maar dat is schijnbaar toch niet goed gegaan.

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:08
IIS heeft er niks mee te maken imo.
Moet je in je connection string niet aangeven dat je integrated security gebruikt?

integrated security=SSPI

Kan je met je account op de DB inloggen via Query analyzer?

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Verwijderd schreef op 26 maart 2004 @ 14:31:
het feit dat ik de pagina kan opvragen betekent automatisch al dat ik voldoende rechten heb op de server.

De database heb ik aangepast dmv osql...maar dat is schijnbaar toch niet goed gegaan.
Rechten op de server hebben niets met rechten in de db te maken. Je moet iedere domeingebruiker ook toevoegen als gebruiken op de db.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Ah well, dat ik niet die webadmin kan laden, daar kan ik al helemaal niet bij...

Hoe komt het toch dat ik MySQL en PostgreSQL 10x makkelijker vond..:)

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:08
P_de_B schreef op 26 maart 2004 @ 14:34:
[...]


Rechten op de server hebben niets met rechten in de db te maken. Je moet iedere domeingebruiker ook toevoegen als gebruiken op de db.
Kan je dat niet makkelijker doen, door bv. de groepen toe te voegen?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Query analyzer zit volgens mij niet bij MSDE, dat kan ik dan niet testen.

Heb nog een keer de grant* operaties uitgevoerd en ik heb een connectie...:P

[ Voor 36% gewijzigd door Verwijderd op 26-03-2004 14:45 ]


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
whoami schreef op 26 maart 2004 @ 14:36:
[...]

Kan je dat niet makkelijker doen, door bv. de groepen toe te voegen?
Ja, je kunt ook groepen toevoegen als dat van toepassing zou zijn.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • whoami
  • Registratie: December 2000
  • Laatst online: 14:08
Verwijderd schreef op 26 maart 2004 @ 14:39:
Query analyzer zit volgens mij niet bij MSDE, dat kan ik dan niet testen.

Heb nog een keer de grant* operaties uitgevoerd en ik heb een connectie...:P
Query Analyzer/SQL Buddy, whatever. Met een extern tooltje dus.

https://fgheysels.github.io/

Pagina: 1