Can't select the datebase (PHP to MSSQL)

91ervans

Benutzer
Beiträge
8
Hallo liebes Forum,

ich hab da ein Problem mit meinem MSSQL-Server.

Ich hab da ein PHP-Script der auf meinen MSSQL-Server Connecten soll und mir in einer bestimmten Tabelle eine neue Zeile erstellen soll .

Der PHP-Script schaut so aus:

Code:
<?php

    $host = "(local)\\SQLEXPRESS"; // your sql instance
    $user = "sa"; // username
    $pw = "tollespasswort"; // password
    $db = "Auth"; // db
    $md5_key = "2011"; // your md5 key

    $connect = mssql_connect($host,$user,$pw)
    or die("Can't connect to the datebase.");

    mssql_select_db($db,$connect)
    or die("Can't select the datebase");

?>

<html>
  <head>
    <title>Register</title>
    <center>
    <h3 style="color:red">Register Page ( Pls insert more then 4 chars ! )</h3>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
      Username : <input type="text" size="20" name="username" /><br />
      Password : <input type="password" size="20" name="password" /><br /><br />
      <input type="submit" value="Register now !" name="senden" />
    </form>
    <?php

      $usr = $_POST['username'];
      $pass = $_POST['password'];
      $endPw = $md5_key . $pass;
      $md5 = md5($endPw);

      $results = mssql_query("SELECT * FROM dbo.Accounts WHERE '$usr' LIKE login_name");
      $res = mssql_num_rows($results);

      if(strlen($usr) > 4 && strlen($pass) > 4)
      {
          if($res > 0)
          {
              echo "Account Exists !";
          }
          else
          {
              mssql_query("INSERT INTO dbo.Accounts(login_name,password,block,withdraw_remain_time,age,auth_ok,pcbang,last_login_server_idx,event_code,result) VALUES('$usr','$md5',0,0,18,1,1,1,0,1)");
              echo "Registration Success !";
          }
      }
      else
      {
          echo "Username or Password to small...";
      }

    ?>
    </center>
  </head>
</html>

Und die Fehlermeldung die ich beim aufrufen der Seite bekommen sieht wie folgt aus:

Code:
Warning: mssql_select_db() [function.mssql-select-db]: message: The server principal "SERVERNAME\IUSR_91ervans" is not able to access the database "Auth" under the current security context. (severity 14) in C:\inetpub\vhosts\domain.com\httpdocs\register.php on line 12

Warning: mssql_select_db() [function.mssql-select-db]: Unable to select database: Auth in C:\inetpub\vhosts\domain.com\httpdocs\register.php on line 12
Can't select the datebase

Kurz erklärt Webserver und MSSQL-Server laufen auf dem selben System. Wenn man die Seite aufruft sollte man 2 Felder zum eintragen von Werten bekommen die man dann abschicken kann. Der Webserver sollte dann zum MSSQL-Server connecten und in der Datenbank Auth in der Tabelle dbo.Accounts eine neue Zeile erstellen.

MfG 91ervans
 
Werbung:
Hallo 91ervans,

welchen Modus benutzt der sql für die Benutzeranmeldung?

1. Windows integriete Sicherheit
2. SQL-Server

Welche Rechte hat SERVERNAME\IUSR_91ervans auf dem SQL-Server?

Gruß Charly
 
Hallo Charly,

Er benutzt SQL-Sever für die Anmeldung.

Welche Rechte ist schwer zu sagen. Weil es den User einfach nicht gibt...

Es gibt einen SERVERNAME\Administrator aber nicht den wo gebraucht wird ?!

MfG 91ervans
 
Hallo 91ervans,

Ich brauche noch ein paar Infos über deinen Webserver.

Du benutzt IIS mit PHP?

Wenn Ja welche Versionen?

Gruß Charly
 
Hallo Charly,

Bin grad leider nicht zuhause und weis nicht die genaue PHP.ver . Ich weis das ich IIS7 drauf hab und denke es war PHP 5.3.6 .
 
Hallo 91ervans,

bist Du dir sicher mit php_mssql? Der Support dafür wurde ab der PHP Version 5.3.x eingestellt.

Ich würde es mal mit den 'Microsoft Drivers for PHP for SQL Server' versuchen. Das dürfte bei IIS7 und PHP 5.3.x weniger Probleme machen.

Gruß Charly

PS: Ich denke das mit der Fehlermeldung liegt am IIS. Versuche den Fehler gerade zu replizieren.
 
Hallo 91ervans,

überprüfe mal ob der Benutzer, der in der Web.config angegeben ist, auch in der Datenbank als Benutzer angegeben ist.
Bei integrierter Sicherheit muss es der Benutzer des Anwendungspools sein.
Wenn das übereinstimmt sollte es auch mit dem Zugriff auf den SQL funktionieren.

Gruß Charly
 
Werbung:
Hallo Charly,
dein letzter Beitrag hat mir sehr geholfen. Der Benutzer war nicht im Anwendungspool :|

Jetzt funktioniert es.

MfG 91ervans
 
Zurück
Oben