Keistad-ICT
  1. U bevindt zich hier:  
  2. Startpagina
  3. MySQL

MySQL

MySQL - Stored Procedure om gebruikers in bestaande databases aan te maken

Gegevens
Categorie: MySQL
Gepubliceerd: 09 juni 2025
Hits: 25

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

-- De gebruikers voor de databases aanmaken en rechten op die databases geven
DROP PROCEDURE IF EXISTS users_aanmaken;
DELIMITER $$
CREATE PROCEDURE users_aanmaken()
 
BEGIN
DECLARE 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 ;
 
-- De Stored Procedure aanroepen
CALL users_aanmaken();
 
Het resultaat controleren
 

MySQL - Stored Procedure om meerdere databases aan te maken

Gegevens
Categorie: MySQL
Gepubliceerd: 09 juni 2025
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 aanmaken
DROP PROCEDURE IF EXISTS databases_aanmaken;

DELIMITER $$
CREATE PROCEDURE databases_aanmaken()
BEGIN
DECLARE 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 aanroepen
CALL databases_aanmaken();

Het resultaat controleren

 

 

Main Menu

  • Home
  • Arduino
  • ESP8266
  • Microsoft SQL Server
  • Raspberry Pi
  • Maqueen V3.0
  • PowerShell
  • Proxmox
  • Home Assistant
  • Node-RED
  • Beleggen
  • Sparen
  • Traden - Handelen
  • Linux - Ubuntu
  • MySQL