Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

MySQL: Tạo user với biến (Dynamic SQL)

Để tạo user MySQL với tên người dùng và mật khẩu lưu trong biến, sử dụng Dynamic SQL kết hợp PREPARE, EXECUTE, DEALLOCATE PREPARE.

Các bước thực hiện

Bước 1: Khai báo biến

mysql> SET @TenDangNhap := 'John Doe';
mysql> SET @MatKhau := 'John Doe 123456';

Bước 2: Xây dựng câu lệnh động với CONCAT()

mysql> SET @CauLenhTaoUser = CONCAT(
    -> 'CREATE USER "', @TenDangNhap, '"@"localhost" IDENTIFIED BY "', @MatKhau, '"'
    -> );

Bước 3: Chuẩn bị (PREPARE)

mysql> PREPARE stmt FROM @CauLenhTaoUser;

Bước 4: Thực thi (EXECUTE)

mysql> EXECUTE stmt;

Bước 5: Kiểm tra user đã tạo

mysql> SELECT user, host FROM mysql.user;

Kết quả sẽ chứa John Doe | localhost.

Bước 6: Giải phóng (DEALLOCATE)

mysql> DEALLOCATE PREPARE stmt;

Lưu ý quan trọng:

  • Tên user chứa khoảng trắng phải đặt trong dấu ngoặc kép "..." trong câu lệnh CREATE USER.
  • Cách này hữu ích khi viết stored procedure tạo user động.
  • MySQL 8.0+ khuyến nghị dùng caching_sha2_password plugin mặc định.