Como tirar os privilégios de SQL

Se você tem uma maneira de dar privilégios de acesso SQL para as pessoas, você também deve ter uma forma de tirar os privilégios de distância. funções de trabalho das pessoas mudam, e com essas mudanças as suas necessidades de acesso a dados mudar. Digamos que um empregado deixa a organização para participar de um concorrente. Você provavelmente deve revogar todos os privilégios de acesso a essa pessoa - imediatamente.

SQL permite remover privilégios de acesso usando a REVOGAR declaração. Esta declaração age como o CONCEDER declaração faz, exceto que ele tem o efeito inverso. A sintaxe para essa instrução é a seguinte:

REVOKE [OPÇÃO GRANT FOR] privilégio-listON objectFROM user-list [RESTRICT | CASCADE] -

Você pode usar essa estrutura para revogar os privilégios especificados deixando outras intactas. A principal diferença entre o REVOGAR declaração eo CONCEDER declaração é a presença do opcional RESTRINGIR ou CASCATA palavra-chave no REVOGAR declaração.

Por exemplo, suponha que você usou COM OPÇÃO GRANT quando concedidos certos privilégios a um usuário. Eventualmente, quando você deseja revogar os privilégios, você pode usar CASCATA no REVOGAR declaração. Quando você revogar os privilégios de um usuário, desta forma, você também arrancar privilégios de qualquer pessoa a quem essa pessoa tinha concedido privilégios.

Por outro lado, o REVOGAR declaração com o RESTRINGIR opção funciona apenas se o beneficiário não tem delegado os privilégios especificados. Nesse caso, o REVOGAR declaração revoga privilégios do bolseiro muito bem. Mas, se o beneficiário passou sobre os privilégios especificados, o REVOGAR declaração com o RESTRINGIR opção não revoga qualquer coisa - e em vez disso retorna um código de erro.

Este é um aviso claro para você que você precisa descobrir quem foi concedido privilégios pela pessoa cujos privilégios você está tentando revogar. Você pode ou não pode querer revogar os privilégios dessa pessoa.

Você pode usar um REVOGAR declaração com o opcional Outorgar opção de cláusula de revogar apenas a opção de concessão de privilégios especificados ao mesmo tempo permitindo que o beneficiário manter esses privilégios para si mesmo.

Se o Outorgar opção de e a cláusula CASCATA palavra-chave estão presentes, você revogar todos os privilégios que o beneficiário concedidos, juntamente com o direito do beneficiário de conceder tais privilégios - como se você nunca tivesse concedido a opção de concessão em primeiro lugar. Se o Outorgar opção de e a cláusula RESTRINGIR cláusula estão presentes, uma de duas coisas acontece:

  • Se o beneficiário não conceder a qualquer pessoa a qualquer dos privilégios que você está revogando, em seguida, o REVOGAR instrução é executada e remove a capacidade do beneficiário para conceder privilégios.

  • Se o beneficiário já concedeu, pelo menos, um dos privilégios que você está revogando, o REVOGAR declaração não executa e retorna um código de erro.

O fato de que você pode conceder privilégios usando COM OPÇÃO GRANT, combinado com o fato de que você também pode revogar seletivamente privilégios, faz a segurança do sistema muito mais complexo do que parece à primeira vista. Vários outorgantes, por exemplo, pode conceder concebivelmente um privilégio a um único usuário. Se uma dessas entidades que concedem, em seguida, revoga o privilégio, o usuário mantém esse privilégio por causa da concessão ainda existente de outro concedente.

Se um privilégio passa de um utilizador para outro por meio do COM OPÇÃO GRANT, esta situação cria uma cadeia de dependência, no qual os privilégios de um usuário dependem os de outro usuário. Se você é um DBA ou um proprietário do objeto, estar sempre consciente de que depois de conceder um privilégio usando a COM OPÇÃO GRANT cláusula, esse privilégio pode aparecer em lugares inesperados.

Revogar o privilégio de usuários indesejados ao deixar os usuários legítimos manter o mesmo privilégio pode constituir um desafio. Em geral, o GRANT OPTION e CASCATA cláusulas abranger inúmeras sutilezas. Se você usar essas cláusulas, verificar tanto o padrão SQL e a documentação do produto - cuidadosamente - para garantir que você compreender como as cláusulas de trabalhar.

menu