Como já foi dito na aula anterior sobre segurança de dados, a autenticação de usuários no DB2 é feita integralmente pelo sistema operacional. Sendo assim, é importante que o DBA do DB2 tenha noções de criação de usuários e grupos de usuários no sistema operacional em que trabalha. Este é o tema desta sexta aula, que trata da criação de IDs e grupos em ambiente LINUX.
Recomendo ao leitor interessado em acompanhar o curso que acesse o portal do DB2 para baixar 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 6 – Criando IDs no LINUX & AIX
Algumas empresas adotam a política de que DBA não põe a mão em sistema operacional. Mas na maioria delas, o DBA é responsável por configurar todos os parâmetros do banco de dados ou instância que estejam diretamente ligados ao sistema operacional.
Por isso é importante que o DBA tenha um conhecimento razoável sobre o sistema operacional em que roda sua instância. Nesta aula, trataremos da criação de usuários do banco em sistemas operacionais Linux e AIX.
Pré-requisitos
Primeiramente, o DBA deve verifiacar qual o tipo de autenticação usada nesta instância. Isso indicará em qual máquina (servidor ou cliente) que o ID deve ser criado. (Lembre-se que a autenticação do DB2 é sempre feita pelo sistema operacional).
Esta informação definida pelo parâmetro de instância “Database Manager authentication”. Seu valor default é “SERVER”, ou seja, autenticação de IDs no servidor.
Abaixo se vê o comando DB2 para listar os valores dos parâmetros da instância, seguido do comando “grep” para localizar o parâmetro desejado (db2 get dbm cfg). Para rodar este comando, é preciso abrir uma sessão do “putty” com ID de proprietário da instância.
Criando IDs e grupos de usuários no Linux
É uma boa prática definir a quais grupos o ID será associado logo na criação deste ID. Sendo assim, devemos primeiramente criar os grupos de usuários e posteriormente os IDs propriamente ditos.
Os comandos usados no Linux para estas duas ações são “groupadd” e “useradd”, que podem ter ligeiras mudanças conforme a versão e build que é usado. No nosso caso, vamos apenas criar o grupo de usuários MEU_GRUPO, o ID MEU_ID, definir o diretório padrão, o grupo de usuários que este ID pertence e a sua senha inicial. Para obrigar o usuário a trocar de senha no seu primeiro login, usei o comando “chage”. Para executar estes comandos, o ID do proprietário da instância precisa ter direito de executar o “sudo” e incorporar direitos de administrador do sistema Linux.
Obs: para o leitor que não tem experiência com sistemas operacionais tipo UNIX, vale lembrar que todos os comandos, IDs, senhas e nomes de grupo de usuários são sempre sensíveis a maiúsculas.
Criando IDs e grupos de usuários no AIX
No caso do AIX, a grande diferença é que não vamos usar uma sequência de comandos. Faremos todas as operações com a aplicação Interface de Gerenciamento de Sistema, mais conhecida pela sigla do inglês SMIT.
No SMIT temos recursos para executar todas as operações listadas anteriormente. Novamente devemos abrir uma sessão do “putty” com o ID do proprietário da instância DB2 e executar o “sudo” para receber autoridade de root do AIX. Depois disso basta executar o comando “smit” para ter acesso à interface. Em seguida escolhemos as opções “Security & Users” e depois “Change / Show Characteristics of a User” e finalmente chegamos à tela mostrada na figura abaixo.
Acessando o banco de dados do DB2
Uma vez criados os usuários, é preciso dar os devidos acessos dentro do DB2. Os detalhes das permissões serão vistos em detalhe na Aula 7. Por hora, daremos apenas direito de conexão ao banco MEU_BD ao grupo MEU_GRUPO. Desta forma, todos os usuários associados a este grupo poderão se conectar na base MEU_BD e, consequentemente, terão acesso a todos os objetos públicos deste banco. Para isso, precisamos nos conectar à base desejada como proprietário da instância e daí atribuímos o privilégio a este novo usuário.
Vamos ver agora um exemplo.
Problema: Imagine que após a criação de um novo banco de dados XPTO num servidor Linux, precisamos dar acesso ao DB2 a três usuários novos em dois novos grupos:
• Usuário mmiguel do grupo RH;
• Usuária mariah do grupo MKT;
• Usuário joaovie do grupo MKT.
Liste todos os passos e comandos que devem ser executados.
Solução: A lista de ações para executar estas tarefas é listada a seguir.
1. Abrir uma sessão do “putty” usando ID do proprietário da instância.
2. Verificar se a autenticação está sendo realizada no servidor:
db2 get dbm cfg | grep “Database Manager authentication”
3. Assumir perfil de root para criação dos novos IDs no servidor:
sudo -v sudo su –
4. Criar os grupos MKT e RH (com letras maiúsculas):
groupadd MKT groupadd RH
5. Criar os três Ids:
useradd mmiguel -m -g RH -d /home/ mmiguel –p xxxx useradd mariah -m -g MKT -d /home/ mariah –p xxxx useradd joaovie -m -g MKT -d /home/ joaovie –p xxxx
6. Forçar a troca de senha no próximo logon:
chage -d 0 mmiguel chage -d 0 mariah chage -d 0 joaovie exit
7. Finalizar a sessão de “sudo”:
exit
8. Conectar à base desejada:
db2 connect to XPTO
9. Atribuir direito de conexão aos grupos correspondentes:
db2 grant connect on database to group MKT db2 grant connect on database to group RH
10. Finalizar sessão do “putty”
exit
Com isso finalizamos a aula de hoje. Até a próxima!
Referências
O leitor interessado encontrará informações mais detalhadas nas seguintes referências:
- DB2 Essential Training I http://bigdatauniversity.com/courses/course/view.php?id=121
- DB2 Essential Training II http://bigdatauniversity.com/courses/course/view.php?id=243
- DB2 Academic Training – 302A Exam preparation http://bigdatauniversity.com/courses/course/view.php?id=272
- 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