Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để sử dụng GRANT với các biến?

SET @object = '*.*';
SET @user = '''user1''@''localhost''';

SET @query = CONCAT('GRANT UPDATE ON ', @object, ' TO ', @user);
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
DROP PROCEDURE IF EXISTS `test`.`spTest`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `spTest`( varLogin char(16), varPassword char(64) )
BEGIN
    DECLARE varPasswordHashed CHAR(41);
    SELECT PASSWORD(varPassword) INTO varPasswordHashed;

    # Any of the following 3 lines will cause the creation to fail
    CREATE USER [email protected]'localhost' IDENTIFIED BY varPassword;
    GRANT USAGE ON test.* TO [email protected]'localhost' IDENTIFIED BY varPassword;
    GRANT USAGE ON test.* TO [email protected]'localhost' IDENTIFIED BY PASSWORD varPasswordHashed;

    ## The following 3 lines won't cause any problem at create time
    CREATE USER [email protected]'localhost' IDENTIFIED BY 'AnyPassordString';
    GRANT USAGE ON test.* TO [email protected]'localhost' IDENTIFIED BY 'AnyPassordString';
    GRANT USAGE ON test.* TO [email protected]'localhost' IDENTIFIED BY PASSWORD  'AnyPassordString';  
END$$

DELIMITER;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách nhanh nhất để tải XAMPP hoặc WAMP trên Win7 64-bit?

  2. Lọc đầu vào rỗng hoặc trống bằng cách sử dụng LOAD DATA INFILE trong MySQL

  3. Lưu trữ Số An sinh Xã hội

  4. Sự cố MySQL trên SQL

  5. Làm thế nào để chỉ nhận được các nút con cấp độ sâu đầu tiên?