Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zugriff auf MSSQL2008 mit User aus trusted domain (https://www.delphipraxis.net/143065-zugriff-auf-mssql2008-mit-user-aus-trusted-domain.html)

generic 10. Nov 2009 13:17

Re: Zugriff auf MSSQL2008 mit User aus trusted domain
 
Ruf mal bitte das Programm "cliconfg" auf.
Ist mindestens ein Protokoll aktiviert, welches auch auf dem Server aktiv ist?

PASST 10. Nov 2009 13:52

Re: Zugriff auf MSSQL2008 mit User aus trusted domain
 
TCPIP und NamedPipes sind aktiviert, entsprechend wie sie auf dem SQL Server aktiviert sind.

Könnte es sein, dass ADO Probleme macht?

Ich habe jetzt mal ein Test-Programm erstellt, welches mit dem SQL-User connecten und ein SQL-Query ausführen soll. Das folgende ist der einzige Code:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin

  with ADOConnection1 do
  begin
    ConnectionString := 'Provider=SQLNCLI10.1;' +
                        'User ID=mein_SQL_User;' +
                        'Password=mein_pw;' +
                        'Integrated Security="";' +
                        'Persist Security Info=True;' +
                        'Initial Catalog=DatenbankName;' +
                        'Data Source=SERVERNAME;' +
                        'Application Name=Mein_Programm_Mame;' +
                        'Initial File Name="";' +
                        'Server SPN=""';
    CommandTimeout := 120;
    LoginPrompt   := False;
  end;

  with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select * from tabelle');
    open;
    first;
  end;

end;
Wenn ich dieses Programm kompiliere und anschließend ausführe, funktioniert das nur ohne Fehlermeldung, wenn ich es mit einem Windows-User ausführe, der auch am MSSQL Server (immer noch die Express Version!) als Login-User eingetragen ist. Verwende ich einen dort nicht eingetragenen Windows-User, so wird mir der übliche Fehler "login failed" angezeigt und im SQL-Server-Log steht, dass "Login failed for <Windows-User>".
Letztendlich schließe ich daraus, dass der SQL-User von der ADOConnection überhaupt nicht verwendet wird. Was mache ich da falsch?

taveuni 10. Nov 2009 14:27

Re: Zugriff auf MSSQL2008 mit User aus trusted domain
 
Glücklicherweise muss ich mich seit langem nicht mehr mit diesem
ADO Gedöns rumschlagen. Mit den paar Euro für die Corelabs/Devart Compos
bist Du für immer glücklich.
Aber zurück zu Deinem Problem:
Warum verwendest Du den NativeClient und nicht OLEDB?
Ich habe dies noch gefunden:
http://msdn.microsoft.com/en-us/library/ms130978.aspx
Da steht irgendwas von "DataTypeCompatibility=80" was man im Connectionstring
implementieren soll.

Kann das das Problem sein?

Gruss Werner

muenster 10. Nov 2009 15:27

Re: Zugriff auf MSSQL2008 mit User aus trusted domain
 
Falls Du Win XP als Client benutzt, dann kann Dir dieser Link vllt. helfen:

http://www.microsoft.com/downloads/d...1-9e8b9d835cdc

Der Abwärtskompatibilitätspatch bringt den ODBC auf den entsprechenden Kenntnisstand damit der Client den Server findet.

Viele Grüße#

Karsten

generic 10. Nov 2009 16:16

Re: Zugriff auf MSSQL2008 mit User aus trusted domain
 
Was mich jetzt noch verwundert, dass du eine andere Fehlermeldung bekommst, wenn du mal mit Integrate Sec und ohne arbeitest.

Evtl. ist im Connectstring ein Tippfehler oder deine Variablen User,PW, Server oder DB enthalten Zeichen, welche den String aus den tritt bringen.

Versuch mal in Delphi den String neu zusammen zu klicken und dann ein live Test zu machen.
Damit meine ich "test connection" und dann "active=true" im Dataset.

PASST 10. Nov 2009 17:31

Re: Zugriff auf MSSQL2008 mit User aus trusted domain
 
@generic
Ich habe jetzt einen ConnectionString zusammmengeklickt. Dabei habe ich die Variante "Use a specific user name und password" gewählt und nicht "Use Windows NT Integrated security".
Das Ergebnis schaut auch genau wie mein bisheriger String aus. (Das Kennwort wird dabei nicht dargestellt.)
Delphi-Quellcode:
Provider=SQLNCLI10.1;Integrated Security="";Persist Security Info=False;User ID=mein_SQL_User;Initial Catalog=meine_Datenbank;Data Source=mein_SQL_Server;Initial File Name="";Server SPN=""
Komisch ist weiterhin, dass das SQL Server Log (oder auch das Windows Eventlog) sagt "Login succeeded for user 'mein_Windows_User'. Connection made using Windows authentication. [CLIENT: <meine_IP>]"


Starte ich das kompilierte (Test-)Programm mit einem anderen Windows-User, so erhalte ich die übliche Fehlermeldung "Login failed for user 'anderer_Windows_User'".

Daraus schließe ich, dass die ADO-Komponente weiterhin versucht, sich mit dem Windows-User und nicht mit dem in dem Connection String angegebenen SQL-User mit dem MSSQL Server zu verbinden.

Was nü?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz