INTRODUÇÃO
Segurança de dados é um tópico importante nos dias de hoje. Administradores de bancos de dados devem garantir que os dados sejam acessados apenas por pessoas e programas aplicativos autorizados. Os conceitos e recursos de segurança de dados em SQL dizem respeito unicamente ao acesso aos dados armazenados. Não é função dos SGBDR proteger a infraestrutura tecnológica (rede, servidores etc.) contra ataques e invasões.
Em SQL, segurança de dados é baseada em 3 conceitos:
Um usuário é identificado através de seu user id e uma senha, mas a forma como isto é implementado varia de acordo com o SGBDR utilizado. A maioria dos SGBDR comerciais utiliza o conceito de sessão para identificar o usuário. Uma sessão é iniciada quando o usuário se conecta ao SGBDR, seja através de uma rede ou localmente, caso ambos estejam utilizando mesmo servidor, e termina quando a conexão é encerrada. No MySQL, por exemplo, antes de acessar o SGDBR, o front end MySQL Workbench solicita ao usuário seu user id e senha. Após o usuário se identificar, o programa se conecta ao SGDBR com as permissões do usuário em questão.[1]
CRIAÇÃO DE USUÁRIOS
Os scripts SQL para criação das tabelas utilizadas nos exemplos encontram-se nos materiais de apoio.[2]
A forma de se criar usuários varia de acordo com o SGBDR. O comando CREATE USER do MySQL, com suas principais cláusulas, encontra-se abaixo:

A forma mais simples de se criar um novo usuário é mostrada abaixo. O usuário contabilidade com senha Troqueasenha123 é criado, porém sem qualquer autorização. O usuário não consegue criar esquemas ou tabelas.

Para atribuir autorizações ao usuário, deve-se utilizar o comando GRANT, mostrado mais adiante. Um cuidado: os principais SGDBR comerciais são sensíveis a letras maiúsculas e minúsculas (case sensitive) para nome de usuário e senha, mas não para nomes de objetos.
As demais cláusulas têm suas funções explicadas a seguir: