A Public Web Site that uses SQL


Tip
You must read all previous sections before reading this section.
Usted debe leer todas las secciones previas antes de leer esa sección.

SQL Drivers

The proper SQL drivers (ODBC client) must be installed in the web server. You can create a Window application and run it in the web server, if the Window application cannot connect to a SQL server, also a web application will be able to connect to the SQL server. In fact, if management SQL tool installed in the web server cannot connect to a SQL server, no program will be able to connect.
Los manejadores apropiados de SQL (ODBC cliente) deben estar instalados en el servidor web. Usted puede crear una aplicación de Windows y correrla en el servidor web, si la aplicación de Windows no puede conectarse a un servidor de SQL, tampoco la aplicación web podrá conectase. De hecho, si una herramienta de administración de SQL instalada en el servidor web no puede conectase a un servidor de SQL, ningún programa será capaz de conectarse.

SQL Permissions

For this kind of applications you must be using Anonymous Authentication, and despite this, the web application must run using a user account. This user account must have permissions on the SQL server. You must modify the SQL script that creates the database to grant permission to the account that will be used to connext to the database (do not forget that in our example, we have to create an Application Pool called Sales using IIS Manager).
Para este tipo de aplicaciones usted debe estar usando Anonymous Authentication, y a pesar de esto, la aplicación web debe ejecutarse usando una cuenta de usuario. Esta cuenta de usuario debe tener permisos en el servidor de SQL. Usted debe modificar el script de SQL que genera la base de datos para dar permiso a la cuenta que se usará para la conexión a la base de datos (no se olvide que en nuestro ejemplo, hemos creado una Application Pool llamada Sales usando IIS Manager).

Tip
If the application pool is called sales, you must give permission to IIS AppPool\sales in the respective SQL database as shown in the previous script.
Si la application pool se llama sales, usted debe dar permiso a IIS AppPool\sales en la base de datos respectiva como se muestra en el script previo.

Problem 1
Publish the CategoryListWeb project described in Wintempla > Information Systems > Filling a list view

A trusted connection can be used to connect to a Microsoft SQL Server from a Web or Desktop application. For a desktop application, the connection to Microsoft SQL Server is accomplished by using the username and password provided at the moment of logging in the computer. For a web application, the connection to Microsoft SQL server is accomplished using the name of the Microsoft IIS Application Pool. To use a trusted connection, you need to:
  1. Setup an account in the domain controller or a local account in the server. The account for the Application Pool Identity is created when you install Microsoft IIS, therefore you do not need to create this account. Observe that if you are NOT using the Application Pool Identity, then you must create an account for your web application.
  2. Setup the Application Pool using Microsoft IIS manager.
  3. Set the authentication to use the Application Pool Identity using Microsoft IIS manager.
  4. Give execution permission (in the case of DLLs or EXEs) in the ISAPI and CGI Restrictions of Microsoft IIS manager.
  5. Edit the connection string in the stdafx.h file.
  6. Edit the SQL script to give permissions to the Application Pool to connect to the SQL server.

Publique el proyecto CategoryListWeb que se describe en Wintempla > Information Systems > Filling a list view

Una Conexión de Confianza puede ser usada para conectarse a un servidor de Microsoft SQL desde una aplicación Web o de Escritorio. Para una aplicación de escritorio, la conexión con Microsoft SQL server se consigue usando el nombre de usuario y la clave de acceso que se proporcionaron en el momento de conectarse a la computadora. Para una aplicación web, la conexión al servidor de Microsoft SQL se consigue usando el nombre de la Application Pool de Microsoft IIS. Para usar una conexión de confianza usted necesita:
  1. Configurar una cuenta en el controlador de dominios o una cuenta local en el servidor. La cuenta de la Application Pool Identity se crea cuando se instala Microsoft IIS, por lo tanto, usted no tiene que crear esta cuenta. Observe que si usted NO está usando la Application Pool identity, entonces usted debe crear una cuenta para su aplicación web.
  2. Configurar la Application Pool en el Administrador de Microsoft IIS.
  3. Configurar la autentificación para usar la Application Pool Identity en el Administrador de Microsoft IIS.
  4. Dar permisos de ejecución (en el caso de DLLs o EXEs) en las Restricciones ISAPI o CGI del Administrador de Microsoft IIS.
  5. Editar la cadena de conexión en el archivo stdafx.h
  6. Editar el script de SQL para dar permiso a la Application Pool para conectarse al servidor de SQL.

ApplicationPool

PoolProperties

Authentication

ApplicationPoolIdentity

ISAPI_CGI_Restrictions

RestrictionDlg

stdafx.h
...
#define CONNECTION_STRING L"DRIVER={SQL Server};server=localhost\\SQLEXPRESS;database=best_buy;Trusted_Connection=yes"


mydatabase.sql
USE master;
GO

IF EXISTS(SELECT * FROM sysdatabases WHERE name='best_buy')
BEGIN
     RAISERROR('Dropping existing best_buy database...', 0, 1)
     DROP DATABASE best_buy;
END
GO

CREATE DATABASE best_buy;
GO
...

--___________________ Option 1: ApplicationPoolIdentity in IIS (In this example: Sales is the name of the Application Pool)
IF NOT EXISTS(SELECT * FROM syslogins WHERE NAME='IIS AppPool\Sales')
BEGIN
     CREATE LOGIN [IIS AppPool\Sales] FROM WINDOWS;
END
GO

CREATE USER AppPoolUser FOR LOGIN [IIS AppPool\Sales];
GO

GRANT SELECT, INSERT, DELETE, UPDATE, EXECUTE TO [AppPoolUser];
GO

...


Username and Password

If you do NOT want to use a trusted connection, you can use an USERNAME and PASSWORD to connect to a SQL Server database. You can edit the respective connection string to connect using a USERNAME/PASSWORD. You can also use an ODBC to connect to an SQL Server. See Wintempla > SQL > Microsoft SQL Server to learn more about this subject. You need to:
  1. Create a local account in Microsoft Server, (or an account in the domain controller)
  2. Edit the connection string in the stdafx.h file in the application
  3. Edit the SQL script to give permissions to this account to connect to the database server

Si usted NO quiere usar una Conexión de Confianza, usted puede usar un USERNAME y PASSWORD para conectarse a una base de datos de SQL. Usted puede editar la cadena de conexión para conectarse usando una Conexión de Confianza o un USERNAME/PASSWORD. Usted puede también usar un ODBC para conectarse a un servidor de SQL. Vea Wintempla > SQL > Microsoft SQL Server para aprender más acerca de este tema. Usted necesita:
  1. Crear una cuenta local en Microsoft Server, (o una cuenta en el controlador de dominios)
  2. Editar la cadena de conexión en el archivo stdafx.h en el programa cliente
  3. Editar el script de SQL para dar permisos a esta cuenta de conectarse al servidor de la base de datos

Authentication

SpecificUser

stdafx.h
...
#define CONNECTION_STRING L"DRIVER={SQL Server};server=localhost\\SQLEXPRESS;database=best_buy;UID=selo\\peter;PWD=123"


mydatabase.sql
USE master;
GO

IF EXISTS(SELECT * FROM sysdatabases WHERE name='best_buy')
BEGIN
     RAISERROR('Dropping existing best_buy database...', 0, 1)
     DROP DATABASE best_buy;
END
GO

CREATE DATABASE best_buy;
GO
...

--___________________ Option 2: SQL Account for Authentication (Username: peter and Password: 123)
IF NOT EXISTS(SELECT * FROM syslogins WHERE NAME='peter')
BEGIN
     CREATE LOGIN [peter] WITH PASSWORD='123';
END
GO

CREATE USER [peter] FOR LOGIN [peter];
GO

GRANT SELECT, INSERT, DELETE, UPDATE, EXECUTE TO [peter];
GO

...

© Copyright 2000-2019 Wintempla selo. All Rights Reserved. Sep 05 2019. Home