tenemos varios objetos de base de datos como vista, procedimientos almacenados, disparadores, funciones e índices en una base de datos relacional. Muchas veces, queremos ver definiciones para estos objetos. Podemos usar SSMS graphical way O T-SQL para generar scripts.
Por ejemplo, queremos ver la definición de una vista SQL .. Exploremos ambas formas de generar scripts.,
diferentes métodos para ver la definición de objetos
SSMS Script Wizard:
expanda la base de datos y vaya a vistas. Haga clic derecho en una vista particular para la que queremos generar script y haga clic en Script View as ->Create to.
podemos obtener el script de las siguientes maneras.
- En la nueva ventana de consulta
- Obtener el script en el .,Archivo SQL
- Copie el script en el portapapeles
- Get script in a SQL Agent job
Generate Script Wizard:
También podemos usar Generate Script Wizard en SSMS para generar script. Haga clic derecho en una base de datos y vaya a tareas -> Generar Scripts.
en el Asistente para generar script, seleccione el objeto de base de datos específico y haga clic en Siguiente.
Usted puede completar el asistente para obtener la secuencia de comandos.,
usando t-SQL:
También podemos usar consultas T-SQL para obtener el script de los objetos. Puede usar los siguientes métodos de T-SQL para obtener definiciones para un objeto.
- Obtener scripts usando Information_Schama.,Vistas:
Ejecutar la siguiente consulta en la base de datos de origen y especificar el nombre del objeto en la cláusula where
1234SELECT TABLE_NAME como ViewName,VIEW_DEFINITION como ViewDefinitionFROM INFORMATION_SCHEMA.,Viewswhere TABLE_NAME=’vEmployee’ - Sp_helptext system procedure:
You can use sp_helptext system procedure as well to get the script. You need to specify the object name along with the schema if it is other than dbo.
1EXEC sp_helptext ‘.,’ - función object_definition
también podemos utilizar una función object_definition así como para generar una secuencia de comandos para el objeto. En la siguiente consulta, utilizamos la función object_definition para una vista vEmployee en el AdventureWorks2017 de la base de datos
1SELECCIONE object_definition (OBJECT_ID(N’.,’))
permisos necesarios para generar objetos script
es un aspecto esencial para cualquier DBA controlar los permisos de usuario objetos. Muchas veces los usuarios requieren derechos adicionales en una base de datos para cumplir con su deber. De forma predeterminada, los usuarios con rol público no tienen permisos para ver la definición de un objeto. Es útil para los desarrolladores obtener las definiciones de objetos para que puedan ejecutar esto en un entorno que no sea de producción., Tampoco queremos dar permisos privilegiados a los usuarios, especialmente en el entorno de producción.
vamos a crear un nuevo usuario de base de datos y proporcionar un rol público en la base de datos AdventureWorks2014.
conéctese a SQL Server utilizando las credenciales de inicio de sesión con permiso de rol público.
Ejecutar la consulta para obtener la definición de la vista de un objeto. El comando sp_helptext da un mensaje de error que indica que un objeto no existe en la base de datos.,
Si tratamos de obtener la secuencia de comandos mediante INFORMATION_SCHEMA.Vistas, no da ningún mensaje de error; sin embargo, no devuelve ninguna fila.
tampoco puede usar los SSMS porque no muestran los objetos para el acceso de rol público.
podemos usar el permiso View Definition en SQL Server para permitir a los usuarios ver las definiciones de objetos. Podemos proporcionar este acceso a un rol público o a un usuario individual.,
- Si Queremos proporcionar derechos de definición de objeto de vista a todos los usuarios con rol público, ejecute la siguiente consulta.,v>
123USE AdventureWorks2017GOGRANT VIEW ANY DEFINITION TO Rajendra
1
|
GRANT VIEW DEFINITION on ., TO Rajendra
|
Let’s provide access to a specific user (Rajendra) on a specific object ( .) and verify the permissions to view the definition of an object.
1
|
EXEC sp_helptext ‘.,’
|
Usted puede intentar otros métodos para ver las definiciones de objeto especificado en la sección anterior. También puede actualizar la conexión en SSM para ver todos los objetos después de asignar los permisos de definición de vista.
podemos realizar un seguimiento de los permisos utilizando el comando sp_helprotect.,
- en la captura de pantalla siguiente, puede observar lo siguiente:
- Object: Vemployee
- Owner( Schema) : HumanResources
- Grantee ( User): Rajendra
- grantor ( permission grantor): dbo
- permission: Grant
- action( rights): view definition
revoke view definitions permission
aprendimos a otorgar los permisos de definición de vista a un usuario, rol u objeto en SQL Server en la sección anterior., También es un aspecto importante saber cómo revocar estos permisos de definiciones de vista. Muchas veces, es posible que queramos dar acceso temporal a un usuario y revocarlo más tarde. Podemos revocar los permisos al usuario en todas las bases de datos con el comando Revoke View Any Definition.,iv>
1
2
3
|
USE AdventureWorks2017
GO
REVOKE VIEW DEFINITION on ., Para Rajendra
|
conclusión
en este artículo, exploramos conceder y revocar permisos de definición de vista en SQL Server para ver las definiciones de un objeto. Le proporciona la información necesaria para administrar los permisos para las definiciones de objetos. Si tiene algún comentario o pregunta, no dude en dejarlos en los comentarios a continuación.,
- Autor
- mensajes Recientes
Ver todos los mensajes por Rajendra Gupta
- tiempo de espera de Sesión en SQL Server Siempre En Grupos de Disponibilidad – febrero 8, 2021
- la Realización de menor y mayor actualización de la versión para AWS RDS SQL Server – 29 de enero de 2021
- la Implementación de AWS RDS para PostgreSQL instancias – 27 de enero de 2021
Leave a Reply