2017-03-29 4 views
0

J'ai une base de données sur un serveur MSSQL. Il y a 2 utilisateurs Le premier est un utilisateur db local. Le second est un utilisateur Windows. Les deux ont la même permission.Connexion à la base de données (SQLSRV_Connect())

Si j'essaie de connecter la base de données avec mon utilisateur local, cela fonctionne!

class db { 

static $serverName = "SERVERNAME"; 
static $connectionInfo = array("Database"=>"DBName", "UID"=>"local_user", "PWD"=>"password_local"); 
static $conn; 

function connectToDB(){ 

    global $serverName,$connectionInfo,$conn; 

    $conn = sqlsrv_connect(self::$serverName , self::$connectionInfo); 

    if($conn) { 
     //echo "Connection established.<br />"; 
    }else{ 
     echo "Connection to Database could not be established, please contact your admin!<br />"; 
     //die(print_r(sqlsrv_errors(), true)); 
    } 

... mais lorsque j'essaie de connecter la base de données avec mon utilisateur Windows, j'ai une erreur. J'ai seulement changé le nom d'utilisateur en DOMAIN \ win_user et le pw en Windows pw.

Voici le message d'erreur:

message: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Login failed for user 'DOMAIN\win_user'. 
SQLSTATE: 28000 
code: 18456 
+0

Avez-vous l'ajouter aux utilisateurs? Règles de la base de données? –

+0

Et avez-vous essayé de vous connecter directement à MSSQL avec ce compte Windows? Est-ce que ça marche? –

+0

Oui, l'utilisateur est ajouté avec la même autorisation db_owner. Je peux me connecter avec mon utilisateur Windows dans le serveur de gestion mssql –

Répondre

0

Peut-être que vous ne cartographié utilisateur de base de données. Accédez à Sécurité-> Compte utilisateur-> Cliquez avec le bouton droit sur utilisateur, puis sur Propriété. Aller à la cartographie de l'utilisateur, sélectionnez DB et ci-dessous cliquez sur le rôle "db_owner"

+0

Oui, les autorisations sont les mêmes. –

+0

Utilisez cette information d'identification: '$ serverName =" (local) "; $ connectionInfo = array ("Base de données" => "DBName", NULL, NULL); ' – Mintendo

+0

SQLSTATE: IMSSP code: -1 message: L'option non valide (null) a été transmise à sqlsrv_connect. –