Existe uma função de visualizador de DDL no SQL Server?

1

Eu tenho um usuário que tem a função db_datareader no SQL Server 2008 Eu preciso deste usuário para poder ver Stored Procedures, funções, scripts de tabela, etc.

Qual o papel disso? Eu não quero que o usuário execute scripts DDL (alter tables ou procedures). Eu só quero que o usuário seja capaz de ler qualquer coisa no banco de dados.

Obrigado!

    
por katit 03.04.2014 / 17:04

1 resposta

2

Você está procurando VIEW DEFINITION .

Você pode conceder um principal VIEW DEFINITION em vários escopos (servidor, banco de dados, esquema, objeto específico).

Exemplo para um procedimento armazenado:

Use MyDB
GRANT VIEW DEFINITION ON p_MyProc TO SomeUser

Para todos os objetos em um banco de dados:

Use MyDB
GRANT VIEW DEFINITION TO SomeUser

Para todos os objetos no servidor:

USE master
GRANT VIEW ANY DEFINITION TO SomeUSer

Nota: ao conceder permissões no nível do servidor, o principal também deve ter acesso no nível do banco de dados para visualizar as definições no banco de dados.

    
por 03.04.2014 / 17:20