J'ai créé un serveur sql et une base de données avec terraform. Je dois maintenant créer un utilisateur de la base de données et lui attribuer un rôle.
Comment je peux le faire. Veuillez me conseiller.
J'ai créé un serveur sql et une base de données avec terraform. Je dois maintenant créer un utilisateur de la base de données et lui attribuer un rôle.
Comment je peux le faire. Veuillez me conseiller.
J'ai commencé à travailler sur un fournisseur Terraform qui fera cela à l'adresse suivante https://github.com/jayway/terraform-provider-mssql . C'est encore un travail très précoce, mais j'ai réussi à lui faire provisionner des logins et des utilisateurs pour ces logins dans une instance locale de SQL Server (qui était déjà en cours d'exécution, donc je ne l'ai pas testé du tout en conjonction avec par exemple le fournisseur AzureRM). Les tests et les contributions sont les bienvenus (mais ne l'utilisez pas pour des scénarios de production pour le moment) !
La création d'utilisateurs et de rôles est une fonction du serveur SQL, et non de la plateforme Azure. En tant que tel, le fournisseur ARM de Terraform ne s'en occupe pas, et pour autant que je sache, Terraform ne dispose pas d'un fournisseur MSSQL pour ce travail (il dispose de MYSQL et Postgres). Vous devrez effectuer ce travail en utilisant des scripts SQL.
Voici comment j'ai procédé en utilisant postgres/psql.
Tout d'abord, générez le hachage md5 du mot de passe en ajoutant le nom d'utilisateur au mot de passe :
$ echo -n mypasswordbob|md5sum
fd9c9714184c4ae189ca83f1c21aeeb8
Ajoutez la chaîne 'md5' au hachage résultant pour obtenir la forme de mot de passe crypté que Postgres acceptera : md5fd9c9714184c4ae189ca83f1c21aeeb8
Ajoutez ensuite un fichier modèle autonome contenant les commandes de base de données que vous souhaitez exécuter :
data "template_file" "db_roles" {
vars {
username_bob = "bob"
password_bob = "md5fd9c9714184c4ae189ca83f1c21aeeb8"
}
template = <<EOF
create user $${username_bob};
alter user $${username_bob} WITH ENCRYPTED PASSWORD '$${password_bob}';
EOF
}
Enfin, ajoutez un provisioner remote-exec dans le cadre de la création de votre serveur :
provisioner "remote-exec" {
inline = [
"set -x",
"cat > db_roles.sql <<EOL\n${data.template_file.db_roles.rendered}\nEOL",
"psql -U myuser < db_roles.sql",
]
}
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.