MySQL
- Gegevens
- Categorie: MySQL
- Hits: 25
Deze Stored Procedure kun je uitvoeren na de Stored Procedure van het artikel: MySQL - Stored Procedure om meerdere databases aan te maken

DROP PROCEDURE IF EXISTS users_aanmaken;DELIMITER $$CREATE PROCEDURE users_aanmaken()BEGINDECLARE i INT DEFAULT 1; WHILE i <= 10 DO SET @username = CONCAT('user00', i); SET @password = CONCAT('password', i); -- Create user with a unique name and password SET @create_user = CONCAT('CREATE USER ''', @username, '''@''%'' IDENTIFIED BY ''', @password, ''';'); PREPARE stmt FROM @create_user; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- Grant privileges to allow users to work on their own database SET @grant_privileges = CONCAT('GRANT SELECT, INSERT, UPDATE, DELETE ON ', @username, '_db.* TO ''', @username, '''@''%'';'); PREPARE stmt FROM @grant_privileges;-- PREPARE stmt FROM @create_db; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET i = i + 1; END WHILE;END$$;DELIMITER ;CALL users_aanmaken();

- Gegevens
- Categorie: MySQL
- Hits: 27
Met deze Stored Procedure maak je meerdere databases aan met een ophogend nummer. Pas het getal in de regel WHILE i <= 10 DO eventueel aan naar eigen wensen.
Daarna kun je met deze Stored Procedure, gebruikers aanmaken die met rechten op hun eigen database hebben.

-- De Databases aanmakenDROP PROCEDURE IF EXISTS databases_aanmaken;
DELIMITER $$CREATE PROCEDURE databases_aanmaken()BEGINDECLARE i INT DEFAULT 1;
WHILE i <= 10 DO SET @dbname = CONCAT('student_db_', i); SET @create_db = CONCAT('CREATE DATABASE ', @dbname, ';'); -- Execute the database creation command PREPARE stmt FROM @create_db; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET i = i + 1; END WHILE;END;$$;DELIMITER ;
-- De Stored Procedure aanroepenCALL databases_aanmaken();
Het resultaat controleren

