Bancos de dados são infraestruturas críticas de aplicações modernas. Portanto, cometer um erro pode ter imensas repercussões, especialmente em um banco de dados de produção. Uma das melhores maneiras de reduzir o risco é atribuir permissões e funções específicas aos usuários associados a um banco de dados.
Isso pode ajudar a impedir que os usuários normais executem as tarefas administrativas ou acesse os recursos restritos do banco de dados. Também pode reduzir o risco no caso de uma conta compreendida.
Este tutorial o leva pela criação e configuração das contas de usuário em seu cluster Apache Cassandra.
Criar usuário - Apache Cassandra <= 2.2
Em Apache Cassandra 2.2 e abaixo, usamos a instrução CREATE UUS. Esta declaração cria um novo usuário de banco de dados sem privilégios de superusuário.
A sintaxe de consulta é como mostrado:
Crie usuário [se não existe] user_name
Com senha 'senha'
[SuperUser | Nosuperuser]
Nota: Somente um usuário com privilégios de superusuário pode criar outros usuários dentro do cluster.
O exemplo a seguir mostra como criar um usuário regular com um nome de usuário e senha específicos.
Cassandra@cqlsh> Crie 'Demo_User_User' com senha 'Demo_Password';
Coloque o nome de usuário e a senha em citações únicas ao usar caracteres especiais.
Depois que o usuário for criado, você pode fazer login no servidor usando o nome de usuário e senha especificados.
A senha definida especificada durante uma criação de conta é usada para autenticação interna, conforme definido na configuração do cluster. Se a autenticação interna do cluster não tiver sido configurada, você poderá pular a definição de senha durante a criação da conta como:
Cassandra@cqlsh> Crie 'Demo_User_User';
Por padrão, Cassandra cria uma conta não super-superusor quando não está definida. No entanto, você pode especificar explicitamente que o usuário é um usuário sem raiz, conforme mostrado no exemplo a seguir:
Cassandra@cqlsh> Criar usuário 'noroot' com senha 'senha' NosuperUser;
Isso cria um usuário regular no cluster.
Para criar um usuário com privilégios de superusuário, execute o seguinte comando:
Cassandra@cqlsh> Crie o usuário 'root' com senha 'senha' superUser;
Nota: o nome de usuário de uma conta específica deve ser única. Portanto, Cassandra retorna um erro se você especificar um nome de usuário que já está no cluster.
Cassandra@cqlsh> Crie o usuário 'root' com senha 'senha' superUser;
InvalidRequest: Erro do servidor: código = 2200 [consulta inválida] message = "ROOT já existe"
Se você não tem certeza se já existe uma conta no servidor, você pode usar a opção se não existir.
Cassandra@cqlsh> Crie usuário, se não existe 'root' com senha 'senha' superusser;
Cassandra então verifica se o usuário já existe no cluster. Se for verdade, ele pula a criação do usuário. Caso contrário, ele cria o nome de usuário com as credenciais especificadas.
Criar usuário - Apache Cassandra> = 2.2
O comando Create User está depreciado no Apache Cassandra versão 2.2 e acima. Embora você possa usar o comando na recente versão do Cassandra (compatível com versões anteriores), o uso do comando Create Role é recomendado para provisionar as novas contas de usuário.
A sintaxe do comando é como mostrado:
Criar função [se não existir] Role_name
[Com superusuário = true | falso
| Login = true | falso
| Senha = 'senha'
| Options = Option_Map]
Por exemplo, para criar uma conta de login com a instrução CREATE ROUPE, podemos executar a seguinte consulta:
Cassandra@cqlsh> criar função 'admin' com senha = 'senha' e login = true;
Definir a senha e fazer login como True Permitir que Cassandra crie a função como usuário comum.
Uma vez criado, você pode fazer login na conta usando o comando login:
Cassandra@cqlsh> admin de login
Cassandra solicita uma senha. Forneça a senha para a conta fazer login.
Senha:
admin@cqlsh>
Depois de conectado, as mudanças rápidas para refletir o usuário atualmente conectado.
Conclusão
Você aprendeu sobre os dois métodos de criação de novos usuários em seu cluster de Cassandra através deste artigo. Você também aprendeu a fazer login em um usuário específico após a criação.