Announcement

Collapse
No announcement yet.

SA-Passwort des SQL-Servers

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SA-Passwort des SQL-Servers

    Hallo,
    gibt es eine Möglichkeit, das sa-Passwort des SQL-Servers herauszufinden ? Ich habe eine Delphi-Anwendung, die auf den MS-SQL-SErver zugreift und da dies bei mehreren Kunden zum Einsatz kommen soll, kann ich das Passwort ja nicht fix mitgeben. Der Anwender soll das Passwort aber auch nicht unbedingt eingeben müssen, weil er es ja nicht kennt, sondern nur der Administrator. Oder gibt es eine andere Möglichkeit, z.B. das automatische Anlegen eines eigenen Logins mit sa-rechten durch mein Programm ?

    Bitte um Hilfe
    Danke und Gruss
    Holger

  • #2
    Hallo,

    wenn eine Anwendung das Passwort so einfach einlesen könnte, wäre der Passwortschutz sinnlos :-)

    Man benötigt den Einstieg über sa überhaupt nicht, wenn das eigene Programm unter dem Administrator-Konto ausgeführt wird. Solange beim Microsoft SQL Server 7/2000 die Voreinstellungen nicht geändert werden, kommt der Administrator immer direkt auf die Datenbank, da hier die zuständige Autorität (Domänenkontroller etc.) die Zugangsberechtigung geprüft hat. Über <b>LogonUser</b> kann sich ein Programm zur Laufzeit mit den Rechten versehen, auch wenn der zur Zeit interaktiv angemeldete Benutzer kein Administrator ist

    Comment


    • #3
      Danke für die Antwort,
      aber muss ich nicht für die Funktion <b>LogonUser</b> das Passwort des Administrators wissen oder verstehe ich das nicht richtig ?
      Ein Beispiel wäre klasse :-)

      BOOL LogonUser(

      LPTSTR lpszUsername, // string that specifies the user name
      LPTSTR lpszDomain, // string that specifies the domain or server
      LPTSTR lpszPassword, // string that specifies the password
      DWORD dwLogonType, // specifies the type of logon operation
      DWORD dwLogonProvider, // specifies the logon provider
      PHANDLE phToken // pointer to variable to receive token handle
      );

      Gruss
      Holge

      Comment


      • #4
        Hallo,

        wenn das Administrator-Passwort bekannt ist, kann man folgendes machen:
        <pre>
        procedure TFormClt.ButtonAdminClick(Sender: TObject);
        var
        szBuffer : array[0..63] of Char;
        dwSize : DWORD;
        phToken : THandle;
        bRet : LongBool;
        begin
        MemoLog.Lines.Clear;
        // Login als lokaler Administrator
        if LogonUser('Administrator', 'RechnerName', 'AdministratorPassword',
        LOGON32_LOGON_BATCH,
        LOGON32_PROVIDER_DEFAULT, phToken) then
        begin
        LogMsg(' -> LogonUser als SysAdmin war erfolgreich');
        bRet := ImpersonateLoggedOnUser(phToken);
        if bRet then
        LogMsg(' -> ImpersonateLoggedOnUser war erfolgreich');
        dwSize := SizeOf(szBuffer);
        GetUserName(szBuffer, dwSize);
        LogMsg('GetUserName:' + szBuffer);
        // ...
        // ...
        // ...
        bRet := RevertToSelf;
        if bRet then
        LogMsg(' -> RevertToSelf war erfolgreich');
        dwSize := SizeOf(szBuffer);
        GetUserName(szBuffer, dwSize);
        LogMsg('GetUserName:' + szBuffer);
        end
        else
        LogMsg(' -> LogonUser ist fehlgeschlagen.');
        end;
        </pre>
        <pre>
        procedure TFormClt.LogMsg(sMsg: String);
        begin
        MemoLog.Lines.Add(sMsg);
        end;
        </pre&gt

        Comment


        • #5
          Hallo Herr Kosch,
          aber das ist genau mein Problem. Der Anwender hat nur sein PAsswort, mit dem er in die Domäne kommt. Er kennt weder das Administrator-Passwort noch das sa-Passwort und soll aber trotzdem auf den SQL-Server zugreifen können mit meinem Programm. Wie machen das denn andere ?

          Gruss
          Holger Löttge

          Comment


          • #6
            Hallo,

            in diesem Fall muss jeder betreffende Domäneneinstieg beim SQL Server als berechtiger Benutzer hinzugefügt werden. Allerdings wird auch dort entweder das sa-Passwort oder das Administrator-Passwort erwartet. Der Passwort-Schutz würde überhaupt keinen Sinn machen, wenn eine Anwendung über einen Hintereinstieg "geheime" Benutzerkonton anlegen dürfte

            Comment


            • #7
              Hallo Herr Kosch,
              danke für Ihre Ausführungen. Ich denke, dann werde ich wohl ein eigenes Login am SQL-Server anlegen lassen als ersten Schritt, damit der Anwender dann über diesen Login auf den SQL-Server kommt.

              Grüsse
              Holger Löttge

              Comment

              Working...
              X