Gerenciamento usuários e privilégios com Roles
O gerenciamento de usuários e seus respectivos privilégios aos objetos do banco de dados, dependendo do número de objetos e usuários, pode ser tornar uma tarefa árdua para o administrador do banco de dados.
Quando este número ultrapassa 10 usuários a DBA já deve começar a tomar cuidado para não se passar ao conceder os Grants (permissões) para os objetos do banco em nível de usuário, ou seja, um a um. Uma forma muito simples de minimizar este trabalho é a utilização de Roles (papéis).
Nesta matéria aprenderemos como criar Roles e atribuir permissões de acessos para os usuários do banco de dados através delas.
O que é uma role?
Uma Role pode ser definida como um “pacote” de privilégios que podem ser associados de forma muito fácil aos usuários do banco de dados. Por exemplo, podemos criar uma role com privilégio total a todos os objetos de nosso banco de dados, ou seja, privilégio de administrador. Sendo assim, todos os usuários com papel de administradores do banco de dados deverão ser associados a esta role.
Desta forma, fica muito fácil o gerenciamento de privilégios para um grupo de usuários, pois se antes era necessário realizarmos Grant de todas as tabelas, views, functions e procedures para todos os usuários com permissão de administradores, agora, com a Role, necessitamos apenas associar estes usuários a ela.
Metendo a mão na massa
Para ficar mais claro o conceito de Role vamos ilustrar com exemplos como funciona o gerenciamento de um banco de dados com e sem Roles. Vamos conceder privilégios de administrador para um usuário.
Definindo privilégios sem o uso de Role:
GRANT ALL ON CLIENTES TO PAULO;
GRANT ALL ON PRODUTOS TO PAULO;
GRANT ALL ON ESTOQUES TO PAULO;
Repare que se fosse necessário criamos outro usuário, deveríamos executar novamente o mesmo script modificando apenas o nome do usuário:
GRANT ALL ON CLIENTES TO VERA;
GRANT ALL ON PRODUTOS TO VERA;
GRANT ALL ON ESTOQUES TO VERA;
Para bancos de dados com poucos usuários e poucos objetos esta tarefa é muito simples e não exige grande esforço, porém, sabemos que na realidade, um banco de dados pode tranqüilamente ultrapassar uma centena de objetos e algumas dezenas de usuários. Quando isto ocorre o DBA pode ter muitas dores de cabeça caso tenha que controlar privilégios para cada usuário, abaixo veremos como esta tarefa pode ser bem mais tranqüila, com a utilização de Roles.
Primeiro vamos criar a Role:
CREATE ROLE ADMINISTRADOR;
Agora vamos atribuir os privilégios a esta Role ao invés de atribuir aos usuários:
GRANT ALL ON CLIENTES TO ADMINISTRADOR;
GRANT ALL ON PRODUTOS TO ADMINISTRADOR;
GRANT ALL ON ESTOQUES TO ADMINISTRADOR;
Uma vez que nossa Role ADMINISTRADOR já foi criada e recebeu privilégios para os objetos do banco de dados, é hora de associarmos nossos usuários a ela, notem como é muito mais simples atribuir privilégios aos usuários com a utilização da Role criada:
GRANT ADMINISTRADOR TO PAULO, VERA;
Reparem como ficou muito mais simples a atribuição de permissões aos objetos com a utilização da Role, caso seja necessário modificar os privilégios dos usuários PAULO e VERA, devemo apenas executar Grant e Revoke a Role que automaticamente isto se refletirá em todos os usuários associados a ela.
Conclusão
Como podemos ver a utilização de Roles pode facilitar muito a vida de um DBA na hora de gerenciar os níveis de permissão de acesso a diversos grupos de usuários.
Em caso de dúvidas a respeito deste ou outro assunto sobre Interbase, acesse o fórum iMasters ou mande-me um e-mail.
Abraços e até a semana que vem.
O gerenciamento de usuários e seus respectivos privilégios aos objetos do banco de dados, dependendo do número de objetos e usuários, pode ser tornar uma tarefa árdua para o administrador do banco de dados.
Quando este número ultrapassa 10 usuários a DBA já deve começar a tomar cuidado para não se passar ao conceder os Grants (permissões) para os objetos do banco em nível de usuário, ou seja, um a um. Uma forma muito simples de minimizar este trabalho é a utilização de Roles (papéis).
Nesta matéria aprenderemos como criar Roles e atribuir permissões de acessos para os usuários do banco de dados através delas.
O que é uma role?
Uma Role pode ser definida como um “pacote” de privilégios que podem ser associados de forma muito fácil aos usuários do banco de dados. Por exemplo, podemos criar uma role com privilégio total a todos os objetos de nosso banco de dados, ou seja, privilégio de administrador. Sendo assim, todos os usuários com papel de administradores do banco de dados deverão ser associados a esta role.
Desta forma, fica muito fácil o gerenciamento de privilégios para um grupo de usuários, pois se antes era necessário realizarmos Grant de todas as tabelas, views, functions e procedures para todos os usuários com permissão de administradores, agora, com a Role, necessitamos apenas associar estes usuários a ela.
Metendo a mão na massa
Para ficar mais claro o conceito de Role vamos ilustrar com exemplos como funciona o gerenciamento de um banco de dados com e sem Roles. Vamos conceder privilégios de administrador para um usuário.
Definindo privilégios sem o uso de Role:
GRANT ALL ON CLIENTES TO PAULO;
GRANT ALL ON PRODUTOS TO PAULO;
GRANT ALL ON ESTOQUES TO PAULO;
Repare que se fosse necessário criamos outro usuário, deveríamos executar novamente o mesmo script modificando apenas o nome do usuário:
GRANT ALL ON CLIENTES TO VERA;
GRANT ALL ON PRODUTOS TO VERA;
GRANT ALL ON ESTOQUES TO VERA;
Para bancos de dados com poucos usuários e poucos objetos esta tarefa é muito simples e não exige grande esforço, porém, sabemos que na realidade, um banco de dados pode tranqüilamente ultrapassar uma centena de objetos e algumas dezenas de usuários. Quando isto ocorre o DBA pode ter muitas dores de cabeça caso tenha que controlar privilégios para cada usuário, abaixo veremos como esta tarefa pode ser bem mais tranqüila, com a utilização de Roles.
Primeiro vamos criar a Role:
CREATE ROLE ADMINISTRADOR;
Agora vamos atribuir os privilégios a esta Role ao invés de atribuir aos usuários:
GRANT ALL ON CLIENTES TO ADMINISTRADOR;
GRANT ALL ON PRODUTOS TO ADMINISTRADOR;
GRANT ALL ON ESTOQUES TO ADMINISTRADOR;
Uma vez que nossa Role ADMINISTRADOR já foi criada e recebeu privilégios para os objetos do banco de dados, é hora de associarmos nossos usuários a ela, notem como é muito mais simples atribuir privilégios aos usuários com a utilização da Role criada:
GRANT ADMINISTRADOR TO PAULO, VERA;
Reparem como ficou muito mais simples a atribuição de permissões aos objetos com a utilização da Role, caso seja necessário modificar os privilégios dos usuários PAULO e VERA, devemo apenas executar Grant e Revoke a Role que automaticamente isto se refletirá em todos os usuários associados a ela.
Conclusão
Como podemos ver a utilização de Roles pode facilitar muito a vida de um DBA na hora de gerenciar os níveis de permissão de acesso a diversos grupos de usuários.
Fonte: http://imasters.com.br
Por: Rafael Helm
Nenhum Post Relacionado.
Artigos parecidos fornecidos por Yet Another Related Posts Plugin.



