Exibindo definições de objeto
As regras para exibição do código-fonte Transact-SQL de objetos de banco de dados são mais rígidos do que para a exibição de metadados. Para consultar a definição Transact-SQL de um objeto, um usuário deve possuir o objeto ou ter uma das seguintes permissões no objeto:
CONTROL
ALTER
TAKE OWNERSHIP
VIEW DEFINITION
Os itens seguintes são exemplos de como essas regras funcionam:
Se for concedido permissão ALTER a um usuário na tabela myTable, o usuário poderá ver a definição Transact-SQL dos subcomponentes relacionados à tabela na coluna definição em cada uma das exibições do catálogo listadas na tabela a seguir. Se um usuário não tiver uma das permissões anteriores ou não possuir o objeto, a definição Transact-SQL na coluna definição da exibição de catálogo será NULL.
Se o usuário não for o proprietário da tabela myTable e tiver apenas permissão SELECT na tabela, quando ele acessar as exibições seguintes do catálogo, as colunas definição serão NULL.
Nome de exibição de catálogo
Definições Transact-SQL para
sys.sql_modules
Todos os gatilhos em mytable
sys.computed_columns
Toda a coluna computada em myTable
sys.check_constraints
Todas as restrições CHECK em myTable
sys.default_constraints
Todas as restrições DEFAULT em myTable
Pressuponha que seja concedido a um usuário permissão EXECUTE no procedimento myProcedure. Quando o usuário tenta ver a definição Transact-SQL do procedimento acessando o catálogo de exibiçãosys.sql_modules, a coluna definição tem um valor nulo. Inversamente, se foi concedido ao usuário permissão TAKE OWNERSHIP em myProcedure, o usuário verá a definição Transact-SQL do procedimento na coluna definição de sys.sql_modules.