Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Conectar SQL Server desde PHP

Estas en el tema de Conectar SQL Server desde PHP en el foro de SQL Server en Foros del Web. Hola a Todos!! Tengo el siguiente problema. Instalé Apache2.2.19 y PHP5.2.17, luego de realizar y verificar toda la instalación, me propuse a crear un archivo ...
  #1 (permalink)  
Antiguo 04/08/2011, 10:18
Avatar de eliza_ralves  
Fecha de Ingreso: junio-2009
Ubicación: Caracas
Mensajes: 126
Antigüedad: 14 años, 10 meses
Puntos: 2
Exclamación Conectar SQL Server desde PHP

Hola a Todos!! Tengo el siguiente problema.

Instalé Apache2.2.19 y PHP5.2.17, luego de realizar y verificar toda la instalación, me propuse a crear un archivo de prueba para la conección a la BD en SQL Server 2000.

El archivo original de conexión, funciona correctamente ya que anteriormente lo realice bajo Xampp, pero como la web se va a poner en producción, no es recomendable que esté corriendo bajo Xampp sino desde Apache.

Dicho archivo, cuando lo ejecuto, me lanza un warning:


Cita:
Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'TP\VE1WDJ14CLJ1$'., SQL state 28000 in SQLConnect in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\prueba2.php on line 11
El archivo el siguiente:
Código PHP:
<?php

// Definición de Parámetros de Configuración de la conexión ODBC al 
    // servidor de BD
    
$server      '10.110.1.55';
    
$database      'Pronostico';
    
$conexConfig "DRIVER={SQL Server};SERVER=$server ;DATABASE=$database "

    
// Establece la conexión con el nombre definido en el DNS para el servidor
    // de BD y la BD de Pronóstico
   
[COLOR="Red"][B$link odbc_connect($conexConfig,"","");[/B][/COLOR]

    
// Falló la conexión
    
if(!$link) {
        die( 
"No se pudo conectar con la Base de Datos. Por favor, notificarlo 
              al Administrador." 
odbc_errormsg() );
    }

    return 
$link;
    
    
odbc_close($link);
    
?>
Lo que está en rojo es la linea 11.

Debo añadir, que la pagina web, tiene una autentificación ocn ldap de la empresa, la cual proporciona el usuario y clave de las máquinas de la oficina, luego compara con la registrada en la BD, y tiene acceso al sistema.

La cuestion es que he cambiado el nombre del servidor, y luego me lanza el error que no existe o el nombre del mismo es inválido.

Intente de ésta otra forma:
Código PHP:
<?

    $server      
'10.110.1.55';
    
$database      'Pronostico';
    
$conexConfig "DRIVER={SQL Server};SERVER=$server ;DATABASE=$database "
    
$conection mssql_connect($conexConfig ,"","") ; (linea 6)
       
    
mssql_select_db("Pronostico",$conection);
    

    if(!
$conection) {
    
       die(
"no se puede conectar a SQL Server");

    }
    else{
    
        die(
"se conecto!");
        
    }
    
    return 
$conection;
 
 
mssql_close($conection);

    
?>
Pero me arroja lo siguiente:
Cita:
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: DRIVER={SQL Server};SERVER=10.110.1.55 ;DATABASE=Pronostico in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\prueba.php on line 6
no se puede conectar a SQL Server
Si alguien me podría ayudar... estaría agradecida de por vida!!
__________________
“El mayor enemigo del conocimiento no es la ignorancia, sino la ilusión del conocimiento”— Stephen Hawking
  #2 (permalink)  
Antiguo 04/08/2011, 10:27
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Conectar SQL Server desde PHP

Esto iria en el foro de php no??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 04/08/2011, 11:41
Avatar de eliza_ralves  
Fecha de Ingreso: junio-2009
Ubicación: Caracas
Mensajes: 126
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Conectar SQL Server desde PHP

Supongo que si, pero como todo se basa en sql server....

y además, no puedo duplicar mensajes.

Tendría que esperar que algún moderador lo cambie...

Gracias Libras!
__________________
“El mayor enemigo del conocimiento no es la ignorancia, sino la ilusión del conocimiento”— Stephen Hawking
  #4 (permalink)  
Antiguo 04/08/2011, 16:41
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Conectar SQL Server desde PHP

Y comentando el mensaje, pues es bien claro: Login failed for user

No tienes permisos con el usuario que intentas conectarte
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 05/08/2011, 07:48
Avatar de eliza_ralves  
Fecha de Ingreso: junio-2009
Ubicación: Caracas
Mensajes: 126
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Conectar SQL Server desde PHP

Gracias iislas, pero porque cuando utilizo xampp si me permite el acceso??

Cómo haría en tal caso para obtener el permiso y poder acceder a la BD?
__________________
“El mayor enemigo del conocimiento no es la ignorancia, sino la ilusión del conocimiento”— Stephen Hawking
  #6 (permalink)  
Antiguo 05/08/2011, 07:57
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Conectar SQL Server desde PHP

Lo que podrias hacer es revisar en el nuevo servidor si existe el usuario con el que estas tratando de acceder a la BD y si este usuario tiene permisos sobre las tablas que necesitas, pero esto lo debes hacer a nivel BD.

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 05/08/2011, 08:07
Avatar de eliza_ralves  
Fecha de Ingreso: junio-2009
Ubicación: Caracas
Mensajes: 126
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Conectar SQL Server desde PHP

Revise en las propiedades de la BD y poseo el permiso, me dice lo siguiente:


Login name: TP/minombreusuariowindows
User name: minombreusuariowindows

Poseo permisos de rol:

-public
-db_owner

Cita:
Lo que podrias hacer es revisar en el nuevo servidor si existe el usuario con el que estas tratando de acceder a la BD
cómo haría esto?
__________________
“El mayor enemigo del conocimiento no es la ignorancia, sino la ilusión del conocimiento”— Stephen Hawking

Última edición por eliza_ralves; 05/08/2011 a las 08:12
  #8 (permalink)  
Antiguo 05/08/2011, 09:05
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Conectar SQL Server desde PHP

Hola,

Cita:
Iniciado por iislas Ver Mensaje
... No tienes permisos con el usuario que intentas conectarte
Cita:
Iniciado por eliza_ralves Ver Mensaje
Gracias iislas, pero porque cuando utilizo xampp si me permite el acceso??

Cómo haría en tal caso para obtener el permiso y poder acceder a la BD?
Exactamente, el usuario no tiene permisos para conectarse, pero ¿que usuario?

Posiblemente usaste XAMPP para ejecutar las aplicaciones en el user space de una sesion de Windows con tu usuario, pero Apache corre con otro usuario porque es un servicio. Normalmente corre con la cuenta de Local System. Lo normal en un servidor de producción es configurar Apache para que corra con una cuenta específica y configurar dicha cuenta en Login de SQL Server.

Aunque puedo estar equivocado,
Saludos,
  #9 (permalink)  
Antiguo 05/08/2011, 09:12
Avatar de eliza_ralves  
Fecha de Ingreso: junio-2009
Ubicación: Caracas
Mensajes: 126
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Conectar SQL Server desde PHP

Libras ya logré conectarme a la BD!

Resulta que verifique lo que me dijiste de revisar el usuario (investigando un poco mejor)

Para los quetengan el mismo problema les dejo la solución:

- Inicio Windows > Panel de Control > Herramientas Administrativas > Servicios

- Hacemos click en el Servidor Apache 2.2 > Propiedades > Log On

- Seleccionamos "This Account"

- Colocamos el nombre de usuario de la base de datos: en mi caso TP\nombreusuariowindows

- Escribimos la contraseña de nuestra inicio de sesión, dos veces.

- Seleccionamos "APPLY", luego "OK"

y LISTO!

Como lo tenía configurado anteriormente, era local, es decir, que en ez de loggearse contra el usuario y contaseña de Windows, lo estaba haciendo contra la máquina, cosa que era absurda (hasta que por fin di con el clavo )

Todo esto funcionará siempre y cuando, la configuración del DNS se haga junto con el usuario y contraseña de Windows.

Saludos!!!
__________________
“El mayor enemigo del conocimiento no es la ignorancia, sino la ilusión del conocimiento”— Stephen Hawking

Etiquetas: php, select, server, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:30.