2011-03-29 16 views
23

Estoy mirando el proyecto de base de datos en VS2010, la idea es que quiero algo que pueda usar para realizar un seguimiento del esquema de base de datos (en control de fuente) y capacidad de generar scripts de "nueva instalación" y cambiar scripts.Visual Studio 2010 - Proyecto de base de datos con base de datos importada no puede compilar

Cuando creo un nuevo asistente de proyecto de base de datos e importo mi esquema de base de datos existente, no se "compilará". Me sale el error:

SQL03006: User: [scanner] has an unresolved reference to Login [scanner].

El SQL que genera este error:

CREATE USER [scanner] FOR LOGIN [scanner];

El usuario "scanner" es un inicio de sesión se define en la base de datos Importé. No tengo idea de qué me está molestando, y Google no está tirando demasiado. ¿Algunas ideas?

Respuesta

16

El inicio de sesión está realmente definido en la base de datos maestra de la instalación del servidor. La instrucción CREATE USER debe apuntar a un inicio de sesión existente, de lo contrario, genera errores. El proyecto de base de datos no tiene conocimiento del inicio de sesión en el nivel del servidor. O puede crear un Proyecto de servidor para manejar los Inicios de sesión, o puede desactivar la comprobación de Objetos de seguridad en su Proyecto de base de datos. Vea la respuesta de Demetri M para más detalles: http://social.msdn.microsoft.com/Forums/eu/vstsdb/thread/1f8226fe-b791-4344-8735-3d38307e8664

+4

Ambos enlaces están rotos –

+0

Ambos enlaces parecen contener troyanos de acuerdo con Forefront Gateway de mi empresa –

8

Estoy usando Visual Studio 2012 para un proyecto de base de datos de SQL Server 2008 R2. Las opciones enumeradas por @Judah ya no parecen funcionar.

Ellos parecen estar ahora Ajustes que se pueden configurar mientras se hace un esquema de comparación:

derecho proyecto de la base clic> elegir 'Comparación de esquemas'> seleccione el icono 'Configuración' de engranajes> elegir el 'Tipos de objetos 'tab>

Los inicios de sesión no tienen un ámbito de aplicación. Los roles de la base de datos, los permisos, las membresías de roles y los usuarios tienen un ámbito de aplicación.

Lamentablemente, la única manera que puedo encontrar para conservar estos es guardar la comparación del esquema. Esto puede ser un poco incómodo si está compartiendo esto en un equipo y desea configuraciones de proyecto/base de datos (o servidor) para cualquier esquema de comparación.

Hace bien el trabajo.

1

Puede cambiar las secuencias de comandos de crear usuario para crear roles. Por lo tanto, en lugar de "Crear usuario userName para el inicio de sesión loginName;"

use "Create Role [userName] autorización dbo;"

Este es un truco, pero siempre y cuando usted no está teniendo que lidiar con los usuarios y roles en su proyecto, puede hacerlo felizmente lo siguiente:

GRANT EXECUTE EN OBJETO :: [dbo]. [sp_name] TO [nombre de usuario];

Cuestiones relacionadas