Compartir a través de


Tutorial: Crear e implementar un proyecto de base de datos que hace referencia a inicios de sesión compartidos

Si varias bases de datos hacen referencia a los mismos objetos de servidor, puede crear un proyecto para cada base de datos y un proyecto de servidor en el que importar objetos como inicios de sesión compartidos, claves o mensajes de error personalizados. En este tutorial, preparará un entorno de desarrollo aislado para una base de datos que hace referencia a inicios de sesión compartidos que importará en un proyecto de servidor. Este entorno se basa en el proyecto de base de datos que contiene las definiciones de todos los objetos que se encuentran en la base de datos de producción.

En este tutorial se ilustran las tareas siguientes:

  • Configurar el proyecto de servidor compartido

  • Crear el proyecto de base de datos compuesto

  • Poner el proyecto a disposición del equipo (opcional)

Requisitos previos

Debe tener Visual Studio Premium instalado y tener acceso a una copia de SQL Server desde la que pueda importar objetos de servidor. Esta copia de SQL Server se debe estar ejecutando en un servidor en el que pueda implementar el proyecto de base de datos.

Configurar el proyecto de servidor compartido

Cuando hace referencia a inicios de sesión compartidos en un entorno de desarrollo, por lo general estos inicios de sesión están definidos en un proyecto de servidor que ya existe y que mantiene el administrador del servidor.

Para crear el proyecto de servidor

  1. En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto.

    Aparecerá el cuadro de diálogo Nuevo proyecto.

  2. En Plantillas instaladas, expanda el nodo Base de datos y, a continuación, haga clic en SQL Server.

    Nota

    Si usa Visual Studio Professional, en Plantillas instaladas, expanda el nodo Base de datos, expanda el nodo SQL Server y, a continuación, haga clic en Avanzadas.

  3. En la lista de plantillas, haga clic en Proyecto de servidor de SQL Server 2008.

  4. En Nombre, escriba SharedServerProject.

    No necesita cambiar los valores de Ubicación ni de Nombre de la solución.

  5. Active la casilla Crear directorio para la solución si aún no está activada.

  6. Desactive la casilla Agregar al control de código fuente si aún no está desactivada y haga clic en Aceptar.

    En la solución se agrega un proyecto de servidor vacío que aparece en el Explorador de soluciones.

    A continuación, importará los objetos y valores del servidor.

Para importar los objetos y valores del servidor

  1. En el Explorador de soluciones, haga clic en el proyecto SharedServerProject.

  2. En el menú Proyecto, haga clic en Importar objetos y configuración.

    Nota

    Como alternativa a los pasos 1 y 2, puede hacer clic con el botón secundario del mouse en SharedServerProject y hacer clic en Importar objetos y configuración.

  3. En el Asistente para importar bases de datos, especifique una conexión al servidor del que desea importar objetos y configuración y, a continuación, haga clic en Iniciar.

    Nota importanteImportante

    Para este tutorial, debe especificar el mismo servidor en el que implementará el proyecto de base de datos.

    Los objetos y valores del servidor se importan en el proyecto.

  4. Haga clic en Finalizar cuando se hayan importado los objetos y los valores.

  5. En el menú Ver, haga clic en Vista de esquema.

  6. Expanda el nodo SharedServerProject, expanda el nodo Objetos de nivel de servidor, expanda el nodo Seguridad y expanda el nodo Inicios de sesión.

  7. Identifique y tome nota de uno de los inicios de sesión que aparecen para su uso posterior en este tutorial.

    A continuación, compilará el proyecto de servidor.

Para compilar el proyecto de servidor

  • En el menú Generar, haga clic en Generar solución.

    Al compilar la solución, crea un archivo SharedServerProject.dbschema, que contiene las definiciones de los objetos y valores del proyecto de servidor. Hará referencia a este archivo más adelante en el tutorial.

    A continuación, creará un proyecto de base de datos que utilice un inicio de sesión definido en este proyecto de servidor.

Crear el proyecto de base de datos compuesto

Para crear el proyecto de base de datos

  1. En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto.

    Aparecerá el cuadro de diálogo Nuevo proyecto.

  2. En Plantillas instaladas, expanda el nodo Base de datos y, a continuación, haga clic en SQL Server.

    Nota

    Si usa Visual Studio Professional, en Plantillas instaladas, expanda el nodo Base de datos, expanda el nodo SQL Server y, a continuación, haga clic en Avanzadas.

  3. En la lista de plantillas, haga clic en Proyecto de base de datos de SQL Server 2008.

  4. En Nombre, escriba CompositeDBProject.

    No necesita cambiar los valores de Ubicación ni de Nombre de la solución.

  5. Active la casilla Crear directorio para la solución si aún no está activada.

  6. Desactive la casilla Agregar al control de código fuente si aún no está desactivada y haga clic en Aceptar.

    En la solución se agrega un proyecto de base de datos vacío que aparece en el Explorador de soluciones.

    A continuación, agregará una referencia a la salida del proyecto de servidor definido anteriormente en este tutorial.

Para agregar una referencia al proyecto de servidor

  1. En el Explorador de soluciones, expanda el nodo del proyecto CompositeDBProject y haga clic en el nodo Referencias.

  2. En el menú Proyecto, haga clic en Agregar referencia de base de datos.

    Nota

    Como una alternativa a los pasos 1 y 2, puede hacer clic con el botón secundario del mouse en el nodo Referencias y hacer clic en Agregar referencia de base de datos.

    Aparecerá el cuadro de diálogo Agregar referencia de base de datos. Dado que la solución únicamente contiene un proyecto de base de datos, se selecciona Esquema de proyecto de base de datos (.dbschema).

  3. Haga clic en Examinar.

    Aparece el cuadro de diálogo Seleccionar archivo de base de datos.

  4. Especifique el archivo SharedServerProject.dbschema que se creó anteriormente en este tutorial.

    Por ejemplo, puede especificar la siguiente ubicación:

    Mis documentos\Visual Studio 2010\Projects\SharedServerProject\SharedServerProject\sql\debug\SharedServerProject.dbschema

  5. Haga clic en Abrir.

    Cuando se crea una referencia a un archivo dbschema creado a partir de un proyecto de servidor, de forma predeterminada, la referencia se establece para que use el literal "master" para hacer referencia a sus objetos. Ésta no es una referencia compuesta, porque ha definido un valor variable de base de datos. Solo tiene que definir una variable de base de datos si representa una base de datos diferente.

  6. Haga clic en Aceptar.

    Se agrega una referencia al proyecto de servidor. Ahora puede usar cualquier objeto definido en el proyecto de servidor como si estuviese definido en el proyecto de base de datos actual.

    A continuación, agregará un objeto de usuario al proyecto de base de datos. El objeto de usuario utiliza un inicio de sesión definido en el proyecto de servidor.

Para agregar un usuario al proyecto de base de datos

  1. En el menú Ver, haga clic en Vista de esquema.

  2. Expanda el nodo CompositeDBProject, expanda el nodo Seguridad, haga clic con el botón secundario del mouse en el nodo Usuarios, seleccione Agregar y haga clic en Usuario.

    Aparecerá el cuadro de diálogo Agregar nuevo elemento.

  3. En Nombre, escriba MyUser y haga clic en Agregar.

    El usuario se agrega al proyecto de base de datos y aparece en la Vista de esquema. Se abre el editor de Transact-SQL y muestra la definición del usuario.

  4. En el editor de Transact-SQL, actualice la definición de usuario de forma que coincida con el ejemplo siguiente:

    CREATE USER [MyUser]
        FOR LOGIN [SharedLogin]
        WITH DEFAULT_SCHEMA = dbo;
    
    Nota importanteImportante

    Debe reemplazar [SharedLogin] con el inicio de sesión que identificó en el paso 7 del procedimiento "Para importar los objetos y valores del servidor".

  5. En el menú Archivo, haga clic en Guardar MyUser.user.sql.

    A continuación, definirá un rol de base de datos.

Para definir un rol de base de datos

  1. En la Vista de esquema, expanda el nodo CompositeDBProject, expanda el nodo Seguridad y, a continuación, el nodo Roles.

  2. Haga clic con el botón secundario del mouse en el nodo Roles de base de datos, seleccione Agregar y haga clic en Rol de base de datos.

    Aparecerá el cuadro de diálogo Agregar nuevo elemento.

  3. En Nombre, escriba DbAccounting y haga clic en Agregar.

    El rol se agrega al proyecto de base de datos y aparece en la Vista de esquema. Se abre el editor de Transact-SQL y muestra la definición del rol.

  4. En el menú Archivo, haga clic en Guardar DbAccounting.role.sql.

    A continuación, configurará propiedades de implementación para el proyecto de base de datos.

Para asociar al usuario al nuevo rol de base de datos

  1. Expanda el nodo Scripts, expanda el nodo Implantación posterior y haga doble clic en Script.PostDeployment.sql.

    El editor Transact-SQL se abre y muestra el script posterior a la implementación.

  2. En la parte inferior del script posterior a la implementación, agregue la siguiente instrucción Transact-SQL:

    exec sp_addrolemember 'DbAccounting','MyUser';
    
  3. En el menú Archivo, haga clic en Guardar Script.PostDeployment.sql.

    A continuación, configurará propiedades de implementación para el proyecto de base de datos.

Para configurar el proyecto de base de datos para su implementación

  1. En el Explorador de soluciones, haga clic en CompositeDBProject (el proyecto de base de datos).

  2. En el menú Proyecto, haga clic en Propiedades de CompositeDBProject.

    Aparecerán las propiedades del proyecto.

  3. Haga clic en la pestaña Implementar.

  4. En la lista Implementar acción, haga clic en Crear un script de implementación (.sql) e implementar en la base de datos.

  5. En Valores de la base de datos de destino, haga clic en Editar y especifique una conexión al servidor y a la base de datos en los que desea implementar el proyecto de base de datos.

    Nota

    Si no especifica el mismo servidor del que importó los objetos de servidor, se producirá un error en la implementación porque los inicios de sesión están definidos en dicho servidor.

  6. En el menú Archivo, haga clic en Guardar los elementos seleccionados.

    A continuación, compilará el proyecto de base de datos.

Para generar el proyecto de base de datos

  • En el menú Generar, haga clic en Generar solución.

    El proyecto se compila sin errores.

    A continuación, implementará el proyecto de base de datos en el servidor y la base de datos de destino.

Para implementar el proyecto de base de datos

  • En el menú Generar, haga clic en Implementar CompositeDBProject.

    El proyecto se implementa sin errores.

Poner el proyecto a disposición del equipo (opcional)

Para agregar un proyecto a un sistema de control de versiones

  1. En el Explorador de soluciones, haga clic en el nodo de la solución CompositeDBProject.

  2. En el menú Archivo, seleccione Control de código fuente y haga clic en Agregar solución al control de código fuente.

    Nota

    En este punto, interactuará con el software de control de versiones que esté instalado. En este tutorial se describen los pasos para agregar el proyecto a Visual Studio Team Foundation Server. Si cuenta con otro software de control de versiones, debe utilizar los pasos equivalentes.

    Si usa Team Foundation Server, aparecerá el cuadro de diálogo Conectar con servidor Team Foundation Server.

  3. En Conectar con un servidor Team Foundation Server, haga clic en el servidor que hospeda el proyecto de equipo al que desea agregar la solución.

    Nota

    Si no tiene un proyecto de equipo al que agregar el proyecto de base de datos, vea Planear y seguir proyectos.

  4. En Proyectos de equipo, haga clic en el proyecto de equipo al que desea agregar el proyecto de base de datos y haga clic en Aceptar.

    Aparecerá el cuadro de diálogo Agregar la solución CompositeDBProject al control de código fuente.

  5. Para aceptar los valores predeterminados, haga clic en Aceptar.

    Su proyecto de base de datos y los archivos que contiene se colocan en el sistema de control de versiones. Inicialmente, todavía se encuentran desprotegidos. Protéjalos antes de que otros integrantes del equipo tengan acceso a ellos.

  6. En el menú Ver, elija Otras ventanas y, a continuación, haga clic en Cambios pendientes.

    Aparecerá la ventana Cambios pendientes.

  7. En Comentario, escriba Initial database project creation.

  8. En la barra de herramientas de la ventana Cambios pendientes, haga clic en Proteger.

    Cuando se protege el proyecto de base de datos y los archivos que contiene, aparece el cuadro de diálogo Comprobación en curso. Los iconos del Explorador de soluciones cambian para mostrar que los archivos se encuentran protegidos en el sistema de control de versiones.

Pasos siguientes

Una vez que el proyecto de base de datos está protegido en el control de versiones, los miembros del equipo pueden continuar desarrollándolo. Los desarrolladores de base de datos no necesitan modificar el proyecto de servidor. Por tanto, puede restringir sus permisos para que puedan ver pero no cambiar los objetos compartidos.

Vea también

Conceptos

Iniciar el desarrollo en equipo de bases de datos que hacen referencia a objetos de servidor compartidos

Información general acerca de los proyectos de base de datos y servidor

Iniciar el desarrollo en equipo de bases de datos

Iniciar el desarrollo en equipo de bases de datos que hacen referencia a otras bases de datos

Iniciar el desarrollo en equipo de bases de datos que hacen referencia a objetos de SQLCLR