Usuário SQL 2005 negou permissão SELECT

2

Um usuário de domínio (Usuário1) pertencente às funções public, db_datareader e db_datawriter em um banco de dados específico está recebendo a seguinte mensagem quando tenta selecionar de qualquer tabela nesse banco de dados (incluindo tabelas de teste recém-criadas):

The SELECT permission was denied on the object 'table1', database 'database1', schema 'dbo'.

Este usuário trabalha perfeitamente em vários outros bancos de dados no mesmo servidor. Não é explicitamente negado permissões no banco de dados ou no nível da tabela (que eu possa encontrar pelo menos).

Eu tentei (sem sucesso):

  • Removendo e remapeando o usuário para o banco de dados
  • Atribuindo o usuário à função db_owner
  • Especificamente concedendo privilégios de seleção nos níveis de banco de dados e tabela

A única coisa que fez a diferença é definir o usuário para a função de servidor sysadmin - mas isso não é viável para produção.

Como posso resolver isso?

    
por sh-beta 05.02.2010 / 20:05

1 resposta

3

O mais provável é que o usuário seja membro de um grupo que tenha permissões negadas - as negações prevalecem sobre as doações.

Execute o seguinte para ver as permissões;

select object_name(major_id) as object,
 user_name(grantee_principal_id) as grantee,
 user_name(grantor_principal_id) as grantor,
 permission_name,
 state_desc
from sys.database_permissions
 where major_id = object_id('table1')
 and class = 1

Poderia ser que você esteja usando o encadeamento de propriedade e acessando esta questão ?

Espero que isso ajude

    
por 05.02.2010 / 21:04