2.2 - Controle de acesso baseado em papéis

Imagine a seguinte situação: um determinado sistema possui 1000 usuários, destes, 2 são administradores, 10 são gerentes e os demais são usuários comuns que só fazem consultas. Para o DBA, garantir que cada usuário possua sua respectiva configuração de segurança correta pode ser bastante complexo. Há uma grande chance de que um entre os novecentos e poucos usuários comuns possua uma diferença de acesso.

Para resolver tal situação o SGBD possui um objeto denominado papel. Um papel é como um cargo dentro de uma empresa. Cada pessoa de cada cargo tem direitos diferentes no banco de dados e, muito provavelmente, duas pessoas de cargos iguais têm iguais direitos no banco de dados.

Dessa forma, ao invés de um DBA dar concessões de acessos à usuários, ele passa a dar concessões de acesso a papéis. Por exemplo, ele define quais permissões o papel “Administrador de sistema” pode ter, depois ele define quais permissões o papel “Usuário comum” pode ter e assim sucessivamente. Configurados os papéis, o segundo passo é relacionar quais papéis um determinado usuário pode assumir. E, nesse ponto, o SGBD é bastante flexível, um usuário pode receber vários papéis diferentes.

O João, por exemplo, pode ser o administrador de um sistema, o gerente do sistema e um usuário comum do sistema.

Para a SQL, um papel é definido pelo objeto ROLE. Um papel é criado com o comando CREATE ROLE e é excluído com o comando DESTROY ROLE. Depois que um papel é criado, o método de atribuir e revogar permissões é exatamente o mesmo utilizado para usuários.

Com a criação de papéis, fica muito mais fácil para o DBA criar usuários e atribuir segurança a eles.
Copyright © 2016 AIEC.