Ver definiciones de objetos
Las reglas para ver el código fuente Transact-SQL de los objetos de base de datos son más estrictas que para ver metadatos. Para ver la definición Transact-SQL de un objeto, éste debe pertenecer al usuario, o bien el usuario debe disponer de uno de los siguientes permisos en el objeto:
CONTROL
ALTER
TAKE OWNERSHIP
VIEW DEFINITION
A continuación se ofrecen algunos ejemplos de cómo funcionan estas reglas:
Si un usuario dispone del permiso ALTER en una tabla myTable, puede ver la definición Transact-SQL de los subcomponentes relacionados con la tabla en la columna definition de las vistas de catálogo incluidas en la tabla siguiente. Si el usuario no dispone de uno de los permisos anteriores ni le pertenece el objeto, la definición Transact-SQL en la columna definition de la vista de catálogo es NULL.
Si el usuario no es el propietario de la tabla myTable y sólo dispone del permiso SELECT en la tabla, cuando obtiene acceso a las siguientes vistas de catálogo, las columnas definition son NULL.
Nombre de la vista de catálogo
Definiciones Transact-SQL para
sys.sql_modules
Todos los desencadenadores de myTable
sys.computed_columns
Todas las columnas calculadas de myTable
sys.check_constraints
Todas las restricciones CHECK de myTable
sys.default_constraints
Todas las restricciones DEFAULT de myTable
Imagine que un usuario dispone del permiso EXECUTE en el procedimiento myProcedure. Cuando intenta ver la definición Transact-SQL del procedimiento desde la vista de catálogo sys.sql_modules, la columna definition muestra un valor NULL. Por el contrario, si el usuario dispone del permiso TAKE OWNERSHIP en myProcedure, verá la definición Transact-SQL del procedimiento en la columna definition de sys.sql_modules.