sql >> Database teknologi >  >> RDS >> Mysql

Hvordan bruger man GRANT med variabler?

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. Oracle aggregeringsfunktion til at allokere beløb

  2. Der opstod en fejl under læsning af data fra udbyderen. Fjerncertifikatet er ugyldigt i henhold til valideringsproceduren

  3. Hvorfor hænger java.sql.DriverManager.getConnection(...)?

  4. Sådan dropper du bruger fra Postgres-databasen