Cursos / Informática para Internet / Banco de dados / Aula

arrow_back Aula 17 - Linguagem SQL – Segurança

Segurança de sistema

Até o momento, trabalhamos com apenas um único usuário em nosso banco de dados, o usuário root, que por definição é o primeiro usuário do SGBD. Como nos demais sistemas, o usuário root possui o controle completo sobre o banco de dados, tendo inclusive a permissão de incluir novos usuários no banco de dados.

Mas, como permitir que mais usuários utilizem o banco de dados? Todos eles devem acessar o banco de dados através da conta root? Permitir o acesso a um sistema através de uma única conta com todas as permissões, como a conta root, é geralmente perigoso. Cada usuário deve possuir um login, ao qual está associada uma conta de acesso ao banco de dados com determinadas permissões, conforme for o caso.

Então, como proceder para adicionar uma nova conta de acesso? A sintaxe para adicionar uma conta ao sistema MySQL é descrita no destaque a seguir.

Perceba que o comando CREATE USER cria uma nova conta no MySQL. Para cada conta criada, esse comando insere uma nova linha na tabela mysql.user sem qualquer privilégio. A tabela mysql.user é mantida pelo SGBD e contém informações sobre todas as contas de acesso (login, senha e o que cada conta tem permissão de fazer em cada banco de dados).

No MySQL, o usuário é constituído de um nome mais o host de onde ele poderá acessar o servidor do banco de dados (usuario@host). Caso você não informe o host para o usuário, o MySQL assumirá "%", isto é, todos os hosts.

Vamos criar, inicialmente, um usuário com login josemar e senha (password) 111111 no SGBD MySQL? Para criarmos a conta josemar, utilizamos o seguinte comando.

A resposta do sistema SGBD, no caso MySQL, para o comando CREATE USER, é ilustrada na Figura 1.

Tela do MySQL após o comando CREATE USER.

É importante esclarecer que a linguagem SQL não especifica como gerenciar os usuários. A criação dos usuários varia de sistema para sistema. Sendo necessário consultar a documentação para encontrar o comando correto para criar um usuário em cada sistema SQL.

Para visualizarmos os atributos user e authentication_string (password) da tabela mysql.user, utilizamos o comando SELECT, conforme apresentado na Figura 2. Observe que as informações referentes ao campo password estão codificadas.

Tela do MySQL após o comando SELECT.

Você deve estar se perguntando: “Como proceder para acessar o banco de dados com uma conta diferente da root?”. Bom, para ter acesso ao MySQL a partir de uma conta qualquer e começar a interagir com seu banco de dados, você deve procurar o prompt de comando do Windows, acessível diretamente pelo menu Iniciar/Acessórios do seu ambiente Windows. Ao clicar no ícone, aparecerá a tela da linha de comando, na qual se deve digitar o seguinte comando para entrar no SGBD MySQL.

Como resposta a esse comando, será solicitada a senha do usuário. Digite a senha e tecle Enter. O sistema SGBD será acessado, aparecendo a tela de boas-vindas do ambiente MySQL, conforme você pode ver na Figura 3.

Tela inicial do MySQL.

Versão 5.3 - Todos os Direitos reservados