Créer un utilisateur et accorder des privilèges
Oracle
CREATE USER app IDENTIFIED BY "Strong#Pass1";
GRANT CREATE SESSION TO app;
GRANT SELECT, INSERT, UPDATE ON hr.employee TO app;Sans CREATE SESSION, l'utilisateur ne peut pas se connecter. Pour un quota : ALTER USER app QUOTA 100M ON users;
PostgreSQL
CREATE ROLE app LOGIN PASSWORD 'Strong#Pass1';
GRANT CONNECT ON DATABASE mydb TO app;
GRANT USAGE ON SCHEMA public TO app;
GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA public TO app;Pour les tables créées à l'avenir : ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO app;
MySQL
CREATE USER 'app'@'%' IDENTIFIED BY 'Strong#Pass1';
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'app'@'%';'%' autorise les connexions depuis n'importe quel hôte ; pour la sécurité, indiquez si possible une IP/un hôte précis. CREATE USER/GRANT prennent effet immédiatement ; FLUSH PRIVILEGES n'est nécessaire que si du DML a été exécuté directement sur les tables de droits.
SQL Server
CREATE LOGIN app WITH PASSWORD = 'Strong#Pass1';
USE mydb;
CREATE USER app FOR LOGIN app;
GRANT SELECT, INSERT, UPDATE ON SCHEMA::dbo TO app;Un login est valable pour tout le serveur ; un user est créé séparément dans chaque base. Pour un rôle : ALTER ROLE db_datareader ADD MEMBER app;
MongoDB
db.createUser({
user: "app",
pwd: "Strong#Pass1",
roles: [ { role: "readWrite", db: "mydb" } ]
})La base dans laquelle l'utilisateur est créé devient sa base d'authentification. Rôles intégrés : read, readWrite, dbAdmin, clusterAdmin...
Redis
ACL SETUSER app on >Strong#Pass1 ~app:* +@read +@write
# To persist: ACL SAVE if an aclfile is defined, otherwise CONFIG REWRITE (users are written to redis.conf)on = activé, >password ajoute un mot de passe, ~app:* est le motif de clés, +@read/+@write sont des catégories de commandes. Sans persistance, tout est perdu au redémarrage : ACL SAVE ne fonctionne que si un aclfile est configuré et renvoie une erreur sinon ; dans ce cas, utilisez CONFIG REWRITE.