AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1431301
Accepted
Ellebjerg
Ellebjerg
Asked: 2019-05-01 01:07:03 +0800 CST2019-05-01 01:07:03 +0800 CST 2019-05-01 01:07:03 +0800 CST

SQL Server: permissão de inserção negada, embora a permissão seja concedida

  • 772

Meu administrador de TI/DB e eu temos um problema com permissões no SQL Server.

Em vários bancos de dados, recebo "permissão INSERT negada", embora eu pessoalmente tenha a permissão INSERT concedida e seja membro de um usuário de grupo do AD, que também tem a permissão.

Minhas permissões para SELECT, CREATE, ALTER e DELETE funcionam bem, mas as permissões para manipular dados (INSERT e UPDATE) falham, embora concedidas.

As permissões são concedidas em todo o banco de dados, mas também tentamos concedê-las em tabelas específicas. Não faz diferença.

Tentamos criar um novo banco de dados e conceder as mesmas permissões. Aqui posso INSERIR sem problemas.

Tentamos excluir meu usuário pessoal, para que eu tenha apenas as concessões concedidas pelo grupo, mas não ajudou.

O administrador do banco de dados pode manipular dados como outros usuários específicos, mas quando o administrador tenta manipular como membro do grupo, ele também tem a permissão negada.

Estamos ficando sem ideias sobre o que fazer. Todas as ideias são bem-vindas.

permissions user-accounts
  • 2 2 respostas
  • 1257 Views

2 respostas

  • Voted
  1. Best Answer
    Marcello Miorelli
    2019-05-03T08:56:57+08:002019-05-03T08:56:57+08:00

    Você tem certeza de quais permissões possui em um determinado objeto de banco de dados?

    use esses 2 scripts abaixo, apenas para descobrir quais permissões estão realmente lá - e isso incluiria DENYtambém, caso você esteja preocupado com isso.

    caso precise de mais detalhes, siga este link abaixo:

    script para mostrar todas as permissões para uma tabela

    --use MY_DATABASE
    --go
    
    
    SELECT
    state_desc + ' ' + permission_name +
    ' on ['+ ss.name + '].[' + so.name + ']
    to [' + sdpr.name + ']'
    COLLATE LATIN1_General_CI_AS as [Permissions T-SQL]
    FROM SYS.DATABASE_PERMISSIONS AS sdp
    JOIN sys.objects AS so
         ON sdp.major_id = so.OBJECT_ID
    JOIN SYS.SCHEMAS AS ss
         ON so.SCHEMA_ID = ss.SCHEMA_ID
    JOIN SYS.DATABASE_PRINCIPALS AS sdpr
         ON sdp.grantee_principal_id = sdpr.principal_id
    where 1=1
      --AND so.name = 'my-table_name'
    
    UNION
    
    SELECT
    state_desc + ' ' + permission_name +
    ' on Schema::['+ ss.name + ']
    to [' + sdpr.name + ']'
    COLLATE LATIN1_General_CI_AS as [Permissions T-SQL]
    FROM SYS.DATABASE_PERMISSIONS AS sdp
    JOIN SYS.SCHEMAS AS ss
         ON sdp.major_id = ss.SCHEMA_ID
         --AND sdp.class_desc = 'my_schema'
    JOIN SYS.DATABASE_PRINCIPALS AS sdpr
         ON sdp.grantee_principal_id = sdpr.principal_id
    where 1=1
    
    order by [Permissions T-SQL]
    GO
    
    
    --use MY_DATABASE
    --go
    
    SELECT
      (
        dp.state_desc + ' ' +
        dp.permission_name collate latin1_general_cs_as + 
        ' ON ' + '[' + s.name + ']' + '.' + '[' + o.name + ']' +
        ' TO ' + '[' + dpr.name + ']'
      ) AS GRANT_STMT
    FROM sys.database_permissions AS dp
      INNER JOIN sys.objects AS o ON dp.major_id=o.object_id
      INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id
      INNER JOIN sys.database_principals AS dpr ON dp.grantee_principal_id=dpr.principal_id
    WHERE 1=1
       AND dpr.name NOT IN ('public','guest')
    --  AND o.name IN ('My_Procedure')      -- Uncomment to filter to specific object(s)
    --AND dp.permission_name='INSERT'    -- Uncomment to filter to just the EINSERTs
    
    • 0
  2. Ellebjerg
    2019-05-06T22:45:05+08:002019-05-06T22:45:05+08:00

    Finalmente conseguimos resolver o problema. Nosso administrador achou que havia examinado todos os usuários relevantes, mas descobriu que havia perdido um grupo de usuários que negava as permissões. Isso anulou todas as permissões concedidas para editar dados.

    Mas muito obrigado pelo roteiro. É provável que seja útil em casos futuros.

    • 0

relate perguntas

  • Eu realmente preciso do chmod recursivo para restringir o acesso a uma pasta?

  • Como obter credenciais de proxy reais no Windows 7?

  • Nginx dá 404 para alguns arquivos

  • execute o contêiner do docker como root

  • Por que chown 600 id_rsa corrige problemas de permissões?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve