none
Primeros pasos con SQL RRS feed

  • Pregunta

  • Buenas, soy nuevo en el desarrollo de aplicaciones para escritorio, mayormente con lenguaje C# y se me presento un problema.

    Desarrollé una aplicación de 'Punto de Venta' con su BD y solo me sirve para una sola computadora, el problema se me presenta cuando tengo una red y deseo instalar el PdV en 3 computadoras, y que estos trabajan que la BD en red.

    Deseo aplicar mi programa de 'Punto de Ventas' en una red domestica, y quería saber como buscar algún tutorial donde me explique el uso de Management Studio de SQL Server 2014 para la creación de un Servidor (Especifico para mis desarrollos), Usuarios para cada BD y una Base de Datos que me permita alojarla en una computadora, y que los demás puntos de ventas de la red interactuen con ella. Agradecería algunas indicaciones o requisitos que debería seguir para lograr eso y que me permita investigar por mi cuenta como lograrlo ya que estuve investigando en la red y no hallé información que me sirva de guia.

    Andrés

    viernes, 14 de agosto de 2015 0:07

Respuestas

  • Que tal,

    1. Lo primero que debes de hacer es asegurarte que tu máquinas locales se pueden conectar a tu Servidor,

    Para lo cuál habilita el acceso remoto de tu Servidor de la siguiente manera:

    a. Inicio-> Todos los Programas-> Microsoft SQL Server 2014-> Configuration Tools-> SQL Server Configuration Manager.

    Haz clic sobre "SQL Server Network Configuration"-> Protocols for MSSQL-> TCP/IP->

    Dentro de la ventana IP4 haz clic en Yes.
    En puerto TCP pon 1433

    b. Reinicia SQL Server, para hacer esto desde el SQL Server Management te conectas luego haces clic derecho sobre tu servidor y Restart.

    c. Agrega una Excepción a tu firewall para el protocolo 1433.

    d. Crea una conexión DNS en otra máquina y prueba que la conexión se realiza sin problemas.

    2. Lo siguiente es crearte un usuario SQL Server, este usuario debes de configurarlo en tu cadena de conexión de tu aplicación y asignarle permiso de ejecución sobre tus Stored Procedures, prueba así:

    --1. Crea un Login SQL Server de la siguiente manera:
    
    USE [master]
    GO
    
    CREATE LOGIN [userPDV] WITH PASSWORD=N'@123456', 
    DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
    GO
    
    --2. Creamos el usuario de tu Base de Datos
    
    USE TuBaseDatos
    GO
    
    CREATE USER [userPDV] FOR LOGIN [userPDV] WITH DEFAULT_SCHEMA=[dbo]
    GO
    
    --3. Asigna los permisos de ejecucion
    
    USE TuBaseDatos
    GO
    
    GRANT EXECUTE ON OBJECT::[TuStoredProcedure1] TO [userPDV];
    GRANT EXECUTE ON OBJECT::[TuStoredProcedure2] TO [userPDV];
    
    --....--
    GO

    3. En tu cadena de conexión debes de modificarla en tu App.Config para que uses autenticación SQL con el usuario que haz creado.

    Si tienes una pregunta no dudes en hacerla.

    Saludos!


    Ayacucho - Perú
    Recuerda si mi solución atiende tu consulta por favor márcala como útil y como respuesta.

    http://litigiouslobo.blogspot.com/
    El Blog de Herbert Mendoza


    viernes, 14 de agosto de 2015 2:02

Todas las respuestas

  • Hola Andrés E Hoyos,

    Si tienes una aplicación que almacena los datos en un gestor como SQL Server y que en "local" opera sin problemas, entonces mayores inconvenientes no tendrás. Aún así, te hago algunos alcances.

    1. Como buena practica la cadena de conexión debería estar en un archivo de configuración, para tu caso que tienes una aplicación de escritorio deberías tenerlo en el archivo App.Config. ¿Está así tu desarrollo? 
    2. Como buena practica también deberías reducir el ámbito de una conexión a una sola transacción, para ello deberás enmarcarlo en una instrucción using ¿Está así tu desarrollo?
    3. ¿Tus usuarios de la aplicación están dentro de un dominio o grupo de trabajo? Si es así, se recomienda que la autenticación sea la autenticación de Windows. ¿Como te autenticas en la cadena de conexión?
    4. En tu red (se entiende que todos los puntos se escuchan), deberás tener un equipo que sea el servidor de datos, será el único equipo donde tengas instalado SQL Server. ¿Qué versión y edición de SQL Server tienes?
    5. Deberás cerciorarte de que SQL Server está preparado para recibir solicitudes remotas, ello en Configuration Manager

    Tras estos alcances no deberías tener mayores problemas. Aún así, si tienes algún problema puedes consultarlo.

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    viernes, 14 de agosto de 2015 0:24
  • Hola Andrés E Hoyos,

    En caso el punto 5 no haya quedado claro:

    Lo que tienes que hacer es habilitar el protocolo TCP/IP. Ejecuta la aplicación Administrador de configuración de SQL Server, expande el nodo Configuración de red de SQL Server y luego en Protocolos de <TU INSTANCIA>, allí selecciona el protocolo TCP/IP y marca Habilitar.


    viernes, 14 de agosto de 2015 0:35
  • Que tal,

    1. Lo primero que debes de hacer es asegurarte que tu máquinas locales se pueden conectar a tu Servidor,

    Para lo cuál habilita el acceso remoto de tu Servidor de la siguiente manera:

    a. Inicio-> Todos los Programas-> Microsoft SQL Server 2014-> Configuration Tools-> SQL Server Configuration Manager.

    Haz clic sobre "SQL Server Network Configuration"-> Protocols for MSSQL-> TCP/IP->

    Dentro de la ventana IP4 haz clic en Yes.
    En puerto TCP pon 1433

    b. Reinicia SQL Server, para hacer esto desde el SQL Server Management te conectas luego haces clic derecho sobre tu servidor y Restart.

    c. Agrega una Excepción a tu firewall para el protocolo 1433.

    d. Crea una conexión DNS en otra máquina y prueba que la conexión se realiza sin problemas.

    2. Lo siguiente es crearte un usuario SQL Server, este usuario debes de configurarlo en tu cadena de conexión de tu aplicación y asignarle permiso de ejecución sobre tus Stored Procedures, prueba así:

    --1. Crea un Login SQL Server de la siguiente manera:
    
    USE [master]
    GO
    
    CREATE LOGIN [userPDV] WITH PASSWORD=N'@123456', 
    DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
    GO
    
    --2. Creamos el usuario de tu Base de Datos
    
    USE TuBaseDatos
    GO
    
    CREATE USER [userPDV] FOR LOGIN [userPDV] WITH DEFAULT_SCHEMA=[dbo]
    GO
    
    --3. Asigna los permisos de ejecucion
    
    USE TuBaseDatos
    GO
    
    GRANT EXECUTE ON OBJECT::[TuStoredProcedure1] TO [userPDV];
    GRANT EXECUTE ON OBJECT::[TuStoredProcedure2] TO [userPDV];
    
    --....--
    GO

    3. En tu cadena de conexión debes de modificarla en tu App.Config para que uses autenticación SQL con el usuario que haz creado.

    Si tienes una pregunta no dudes en hacerla.

    Saludos!


    Ayacucho - Perú
    Recuerda si mi solución atiende tu consulta por favor márcala como útil y como respuesta.

    http://litigiouslobo.blogspot.com/
    El Blog de Herbert Mendoza


    viernes, 14 de agosto de 2015 2:02