Les bases de données sont des infrastructures critiques d'applications modernes. Par conséquent, faire une erreur peut avoir d'immenses répercussions, en particulier sur une base de données de production. L'une des meilleures façons de réduire le risque est d'attribuer des autorisations et des rôles spécifiques aux utilisateurs associés à une base de données.
Cela peut aider à empêcher les utilisateurs normaux d'exécuter les tâches administratives ou d'accès aux fonctionnalités restreintes de la base de données. Il peut également réduire le risque dans le cas d'un compte composé.
Ce tutoriel vous guide à travers la création et la configuration des comptes d'utilisateurs dans votre cluster Apache Cassandra.
Créer un utilisateur - Apache Cassandra <= 2.2
Dans Apache Cassandra 2.2 et ci-dessous, nous utilisons l'instruction CREATE utilisateur. Cette déclaration crée un nouvel utilisateur de base de données sans privilèges de superutilisateurs.
La syntaxe de requête est comme indiqué:
Créer l'utilisateur [s'il n'existe pas] user_name
Avec mot de passe «mot de passe»
[SuperUser | NosuperUser]
Remarque: seul un utilisateur avec des privilèges de superutilisateur peut créer d'autres utilisateurs dans le cluster.
L'exemple suivant montre comment créer un utilisateur régulier avec un nom d'utilisateur et un mot de passe spécifiques.
Cassandra @ CQLSH> Créer un utilisateur 'Demo_User' avec le mot de passe 'Demo_password';
Encluant le nom d'utilisateur et le mot de passe en citations uniques lorsque vous utilisez des caractères spéciaux.
Une fois l'utilisateur créé, vous pouvez vous connecter au serveur à l'aide du nom d'utilisateur et du mot de passe spécifié.
Le mot de passe défini spécifié lors d'une création de compte est utilisé pour l'authentification interne telle que définie dans la configuration du cluster. Si l'authentification interne du cluster n'a pas été configurée, vous pouvez ignorer la définition du mot de passe pendant la création de compte comme:
Cassandra @ CQLSH> Créer un utilisateur 'Demo_User';
Par défaut, Cassandra crée un compte non-superUser lorsqu'il n'est pas défini. Cependant, vous pouvez explicitement spécifier que l'utilisateur est un utilisateur non root, comme indiqué dans l'exemple suivant:
Cassandra @ CQLSH> Créer un utilisateur «NOOOot» avec le mot de passe «Mot de passe» nosuperUser;
Cela crée un utilisateur régulier dans le cluster.
Pour créer un utilisateur avec des privilèges de superutilisateurs, exécutez la commande suivante:
Cassandra @ CQLSH> Créer un superutilisateur de «root» avec mot de passe «mot de passe»;
Remarque: le nom d'utilisateur d'un compte spécifique doit être unique. Par conséquent, Cassandra renvoie une erreur si vous spécifiez un nom d'utilisateur qui est déjà dans le cluster.
Cassandra @ CQLSH> Créer un superutilisateur de «root» avec mot de passe «mot de passe»;
InvaliDrequest: Erreur du serveur: code = 2200 [requête non valide] message = "root existe déjà"
Si vous ne savez pas si un compte existe déjà sur le serveur, vous pouvez utiliser l'option If Not Exist.
Cassandra @ CQLSH> Créer un utilisateur s'il n'est pas un superutilisateur de mot de passe 'avec mot de passe';
Cassandra vérifie alors si l'utilisateur existe déjà dans le cluster. Si c'est vrai, il saute la création d'utilisateurs. Sinon, il crée le nom d'utilisateur avec les informations d'identification spécifiées.
Créer un utilisateur - Apache Cassandra> = 2.2
La commande Create User est obsolète dans Apache Cassandra version 2.2 et plus. Bien que vous puissiez utiliser la commande dans la récente version de Cassandra (compatible en arrière), l'utilisation de la commande Create Role est recommandée pour provisionner les nouveaux comptes d'utilisateurs.
La syntaxe de commande est comme indiqué:
Créer un rôle [s'il n'existe pas] Role_name
[Avec SuperUser = True | FAUX
| Login = true | FAUX
| Mot de passe = 'mot de passe'
| Options = option_map]
Par exemple, pour créer un compte de connexion avec l'instruction Create Role, nous pouvons exécuter la requête suivante:
Cassandra @ CQLSH> Créer un rôle 'admin' avec mot de passe = 'mot de passe' et login = true;
Définir le mot de passe et connecter sur True Autoriser Cassandra à créer le rôle en tant qu'utilisateur ordinaire.
Une fois créé, vous pouvez ensuite vous connecter au compte à l'aide de la commande de connexion:
Cassandra @ CQLSH> Admin de connexion
Cassandra vous invite à un mot de passe. Fournir le mot de passe pour que le compte se connecte.
Mot de passe:
admin @ cqlsh>
Une fois connecté, l'invite change pour refléter l'utilisateur actuellement connecté.
Conclusion
Vous avez appris les deux méthodes de création de nouveaux utilisateurs dans votre cluster Cassandra via cet article. Vous avez également appris à vous connecter à un utilisateur spécifique après la création.