Permisos necesarios para SQL Server Data Tools

 

Para poder realizar una acción en una base de datos en Visual Studio, debe iniciar sesión con una cuenta que tenga determinados permisos para esa base de datos. Los permisos específicos que necesita varían en función de la acción que desee realizar. En las siguientes secciones se describe cada una de las acciones que puede querer realizar y el permiso específico que necesita para realizarla.

Para crear o implementar una base de datos, debe disponer de los siguientes permisos.

AccionesPermisos necesarios
Importar objetos y configuración de base de datosDebe poder conectarse a la base de datos de origen.

Si la base de datos de origen se basa en Resultado de, también debe ser el propietario o tener el permiso VIEW DEFINITION en cada objeto.

Si la base de datos de origen se basa en SQL Server 2008 o una versión posterior, también debe ser el propietario o tener el permiso VIEW DEFINITION en cada objeto. Su inicio de sesión debe tener el permiso VIEW SERVER STATE (para claves de cifrado de base de datos).
Importar objetos y configuración de servidorDebe poder conectarse a la base de datos maestra en el servidor especificado.

Si el servidor ejecuta Resultado de, debe tener el permiso VIEW ANY DEFINITION en el servidor.

Si la base de datos de origen se basa en SQL Server 2008 o una versión posterior, también debe ser el propietario o tener el permiso VIEW ANY DEFINITION en el servidor. Su inicio de sesión debe tener el permiso VIEW SERVER STATE (para claves de cifrado de base de datos).
Crear o actualizar un proyecto de base de datosNo se necesita ningún permiso de base de datos para crear o modificar un proyecto de base de datos.
Implementación de una nueva base de datos o implementación con la opción Volver a crear siempre la base de datos establecidaDebe tener el permiso CREATE DATABASE o ser un miembro del rol dbcreator en el servidor de destino.

Cuando crea una base de datos, Visual Studio se conecta a la base de datos modelo y copia su contenido. El inicio de sesión inicial (por ejemplo, yourLogin) que utiliza para conectarse a la base de datos de destino debe tener permisos db_creator y CONNECT SQL. Este inicio de sesión debe contar con una asignación de usuario en la base de datos modelo. Si tiene permisos sysadmin, puede crear la asignación ejecutando las siguientes instrucciones Transact-SQL:

USE [model] CREATE USER yourUser FROM LOGIN yourLogin

El usuario (en este ejemplo, yourUser) debe tener los permisos CONNECT y VIEW DEFINITION en la base de datos de modelo. Si tiene permisos sysadmin, puede otorgar esos permisos ejecutando las siguientes instrucciones Transact-SQL:

USE [model] GRANT CONNECT to yourUser GRANT VIEW DEFINITION TO yourUser

Si implementa una base de datos que contiene restricciones sin nombre y la opción CheckNewContraints está habilitada (lo está de manera predeterminada), debe tener el permiso db_owner o sysadmin o se producirá un error en la implementación. Esto solo ocurre con las restricciones sin nombre. Para obtener más información sobre la opción CheckNewConstraints, consulte Configuración del proyecto de base de datos.
Implementar actualizaciones en una base de datos existenteDebe ser un usuario válido en la base de datos. Debe ser también miembro del rol db_ddladmin, ser el propietario del esquema o ser el propietario de los objetos que desea crear o modificar en la base de datos de destino. Necesita otros permisos para trabajar con conceptos más avanzados como inicios de sesión o servidores vinculados en sus scripts anteriores o posteriores a la implementación.

NOTA: Si realiza la implementación en la base de datos maestra, también debe tener el permiso VIEW ANY DEFINITION en el servidor en el que va a realizar la implementación.
Usar un ensamblado con la opción EXTERNAL_ACCESS en un proyecto de base de datosDebe establecer la propiedad TRUSTWORTHY para el proyecto de base de datos. Debe tener el permiso EXTERNAL ACCESS ASSEMBLY para el inicio de sesión en SQL Server.
Implementar ensamblados en una base de datos nueva o existenteDebe ser miembro del rol sysadmin en el servidor de implementación de destino.

Para obtener más información, vea los Libros en pantalla de SQL Server.

La refactorización de una base de datos solo tiene lugar dentro del proyecto de base de datos. Debe tener permisos para usar el proyecto de base de datos. No necesita permisos en una tabla de destino hasta que implemente los cambios en ella.

Para ejecutar pruebas unitarias en una base de datos, debe disponer de los siguientes permisos.

AccionesPermisos necesarios
Ejecutar una acción de pruebaDebe usar la conexión de base de datos del contexto de ejecución. Para obtener más información, consulte Información general acerca de las cadenas de conexión y los permisos.
Ejecutar una acción anterior o posterior a la pruebaDebe usar la conexión de base de datos del contexto con privilegios. Esta conexión de base de datos puede tener más permisos que la conexión del contexto de ejecución.
Ejecutar los scripts TestInitialize y TestCleanupDebe usar la conexión de base de datos del contexto con privilegios.
Implementar cambios en una base de datos antes de ejecutar las pruebasDebe usar la conexión de base de datos del contexto con privilegios. Para obtener más información, consulte Cómo: Configurar una ejecución de prueba unitaria de SQL Server.
Generar datos antes de ejecutar las pruebasDebe usar la conexión de base de datos del contexto con privilegios. Para obtener más información, consulte Cómo: Configurar una ejecución de prueba unitaria de SQL Server.

Debe tener los permisos INSERT y SELECT en los objetos de la base de datos de destino para generar datos de prueba con el Generador de datos. Si depura los datos antes de generarlos, debe tener también el permiso DELETE en los objetos de la base de datos de destino. Para restablecer la columna IDENTITY en una tabla, debe ser el propietario de la tabla o un miembro del rol db_owner o db_ddladmin.

Para comparar esquemas o datos, debe disponer de los siguientes permisos.

AccionesPermisos necesarios
Comparar los esquemas de dos bases de datosDebe tener los permisos para importar objetos y configuraciones de las bases de datos que se describen en Permisos para crear o implementar una base de datos.
Comparar los esquemas de una base de datos y un proyecto de base de datosDebe tener los permisos para importar objetos y configuraciones de la base de datos que se describen en Permisos para crear o implementar una base de datos. Además, el proyecto de base de datos debe estar abierto en Visual Studio.
Escribir actualizaciones en la base de datos de destinoDebe tener los permisos para implementar actualizaciones en la base de datos de destino que se describen en Permisos para crear o implementar una base de datos.
Comparar los datos de dos bases de datosAdemás de los permisos necesarios para comparar los esquemas de dos bases de datos, necesita también el permiso SELECT en todas las tablas que desee comparar y el permiso VIEW DATABASE STATE.

Para obtener más información, vea los Libros en pantalla de SQL Server.

Las acciones que puede realizar con el editor de Transact-SQL vienen determinadas por el contexto de ejecución de la base de datos de destino.

En la tabla siguiente se muestran los permisos que debe tener para implementar o depurar proyectos de CLR:

AccionesPermisos necesarios
Implementación (inicial o incremental) de un ensamblado con un conjunto de permisos segurosdb_DDLAdmin: este permiso otorga los permisos CREATE y ALTER para los ensamblados y tipos de objetos que va a implementar

VIEW DEFINITION en el nivel de base de datos: necesario para la implementación

CONNECT en el nivel de base de datos: permite conectarse a la base de datos
Implementar un ensamblado con el conjunto de permisos external_accessdb_DDLAdmin: este permiso otorga los permisos CREATE y ALTER para los ensamblados y tipos de objetos que va a implementar

VIEW DEFINITION en el nivel de base de datos: necesario para la implementación

CONNECT en el nivel de base de datos: permite conectarse a la base de datos

Además, debe tener:

La opción de base de datos TRUSTWORTHY establecida en ON

El inicio de sesión que usa para la implementación debe tener el permiso de servidor External Access Assembly.
Implementar un ensamblado con un conjunto de permisos no segurosdb_DDLAdmin: este permiso otorga los permisos CREATE y ALTER para los ensamblados y tipos de objetos que va a implementar

VIEW DEFINITION en el nivel de base de datos: necesario para la implementación

CONNECT en el nivel de base de datos: permite conectarse a la base de datos

Además, debe tener:

La opción de base de datos TRUSTWORTHY establecida en ON

El inicio de sesión que usa para la implementación debe tener el permiso de servidor Unsafe Assembly.
Depuración remota de un ensamblado CLR de SQLDebe tener el permiso de rol fijo sysadmin.
System_CAPS_ICON_important.jpg Importante


En todos los casos, el propietario del ensamblado debe ser el usuario que va a implementar el ensamblado o el propietario debe tener un rol del que el usuario sea miembro. Este requisito se aplica también a todos los ensamblados a los que haga referencia el ensamblado que va a implementar.

Crear y definir pruebas unitarias de SQL Server
SQL Server Data Tools

Mostrar: