Data

22 out, 2013

Administração do DB2 em ambiente UNIX – Parte 05

Publicidade

Continuando a série que trata de conceitos de administração do DB2 em ambiente UNIX, inicia-se agora o capítulo sobre segurança de dados. Neste artigo eu apresento uma visão geral da segurança no DB2.

Recomendo ao leitor interessado em acompanhar o curso que acesse o portal do DB2 para abaixar uma cópia do DB2 Express-C, edição gratuita do produto, ou então, para obter instruções de como acessar e configurar uma instalação do DB2 rodando na nuvem. Para mais detalhes, clique aqui.

AULA 5 – Segurança no DB2: Visão Geral

Este artigo traz uma visão geral destes componentes, que serão estudados em mais detalhes nas próximas aulas. Basicamente a estratégia de segurança do DB2 LUW envolve três níveis:

  1. Autenticação
  2. Autorização
  3. Papéis (“roles”)

A combinação destes níveis garante o controle do DBA sobre o acesso e alteração dos dados, dos objetos do banco de dados e/ou de toda a instância.

Uma vez feita a autenticação do usuário (login/senha), o DB2 verificará autorizações e/ou papéis atribuídos a este usuário a cada comando que for executado.

Veja a seguir mais detalhes sobre cada um destes níveis.

Autenticação

É a verificação do ID e da senha informados pelo usuário. A autenticação do DB2 é integrada ao sistema operacional, ou seja, não é o DB2 quem autentica ID/senha, mas sim o próprio sistema operacional (AIX, HP-UX, LINUX, WINDOWS, Z/OS, etc).

Por default, esta autenticação é feita no servidor, ou seja, seu ID e senha precisam ser reconhecidos no servidor onde roda instância à qual você está se conectando. Apesar de não ser recomendável, é possível mudar esta configuração, obrigando, por exemplo, que a autenticação seja feita pelo sistema operacional da máquina onde roda o cliente do DB2 (autenticação no cliente).

Uma prática comum no universo dos SGBDs é criar grupos de usuários que receberão privilégios de acesso em bancos de dados específicos. Assim os privilégios são atribuídos ao grupo de usuários e os usuários que forem incluídos nestes grupos herdam tais privilégios.

Pois bem, uma vez que a autenticação no DB2 é integrada com o sistema operacional, estes grupos de usuários também devem ser criados no sistema operacional. Na prática, acontecem as seguintes ações:

  1. Criam-se os grupos de usuários no sistema operacional
  2. Atribuem-se os privilégios no DB2 adequados a cada grupo (exemplo: “GRANT CONNECT ON DATABASE db1 TO GROUP usergroupA”)
  3. Criam-se os IDs no sistema operacional
  4. Faz-se as associações entre IDs e grupos de usuários

Desta forma, tem-se um método simples de controlar os privilégios de usuários em cada banco de dados. Importante notar que a relação entre grupos e usuários é NxN: cada ID pode pertencer a N grupos e cada grupo pode conter N usuários.

Em toda instalação do DB2, são criados automaticamente no sistema operacional alguns IDs e grupos de usuários padrão. São eles:

TIPO NOME FUNÇÃO
ID db2inst1  proprietário da instância de mesmo nome
ID db2fenc1  usuário dos serviços isolados do DB2
ID dasusr1  usuário administrador do DB2
grupo db2iadm1  proprietários de instâncias
grupo db2fadm1  usuários de serviços isolados do DB2
grupo dasadm1  usuário administrador do DB2

(a aula 6 tratará da criação de novos IDs e grupos em servidores UNIX).

Políticas de segurança variam de empresa para empresa. Mas muitas vezes, o DBA não tem direito de executar operações de segurança no sistema operacional. Nestes casos, ele deve acionar o administrador do sistema (SYSADMIN) para que este crie os usuários e grupos de usuários no servidor.

Autorização

Identifica os privilégios dentro do DB2 atribuídos aos usuários e/ou grupos. Estas autorizações podem ser atribuídas de duas formas:

Autorizações granulares: usando os comandos GRANT/REVOKE para cada ação ou objeto do banco de dados ou instância – este assunto será discutido em detalhe na aula 7. Veja a seguir alguns privilégios que podem ser atribuídos ou revogados:

  • CONNECT (no banco de dados)
  • CREATE, ALTER, DELETE (para tabelas, visões, procedimentos..)
  • INSERT, DELETE, UPDATE, SELECT (para tabelas, visões)
  • INDEX (criação de índices em tabelas)
  • REFERENCES (criação de chaves estrangeiras)
  1. Autoridades predefinidas: são autoridades padrão do DB2, que podem ter direitos sobre um banco de dados ou sobre toda instância – este assunto será discutido em detalhe na aula 8. Para fins de ilustração, apresento a seguir algumas das autoridades pré-definidas:
  • Nível de instância: SYSADM, SYSCTRL, SYSMAINT, SYSMON
  • Nível de base de dados: DBADM, SECADM, SQLADM, WLMADM, EXPLAIN, ACCESSCTRL, DATAACCESS, etc

Papéis (“roles”)

O DB2 permite ao administrador combinar autoridades pré-definidas e autorizações granulares, criando autoridades personalizadas, chamadas papéis.

Isso permite que o DBA tenha um controle detalhado das autorizações no banco de dados e/ou na instância do DB2, atribuindo uma autoridade especificamente criada para um grupo de usuários (ou um único ID, quando necessário).

A seguir, apresento um exemplo de como criar um papel, detalhar as autoridades e atribuir o papel a um usuário.

wc10

Referências

O leitor interessado encontrará informações mais detalhadas nas seguintes referências.

  1. DB2 Essential Training I http://bigdatauniversity.com/courses/course/view.php?id=121
  2. DB2 Essential Training II http://bigdatauniversity.com/courses/course/view.php?id=243
  3. DB2 Academic Training – 302A Exam preparation http://bigdatauniversity.com/courses/course/view.php?id=272
  4. Securing information management systems http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=%2Fcom.ibm.db2.luw.admin.sec.doc%2Fdoc%2Fc0021804.html