mysql – 如何将GRANT与变量一起使用?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 如何将GRANT与变量一起使用?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1556字,纯文字阅读大概需要3分钟。
内容图文
![mysql – 如何将GRANT与变量一起使用?](/upload/InfoBanner/zyjiaocheng/892/241520b4e2544af3b2e1a3e6adbb5079.jpg)
我在MySql中遇到了GRANT和变量的麻烦.
SET @username := 'user123', @pass := 'pass123';
GRANT USAGE ON *.* TO @username@'%' IDENTIFIED BY @pass;
GRANT INSERT (header1, header2, headern) ON `data` TO @username@'%';
GRANT SELECT (header1, header2) ON `data2` TO @username@'%';
我想在脚本开头将用户名和密码放入变量中,然后在GRANT中使用它们
所以不是这样的:
GRANT USAGE ON *.* TO 'user123'@'%' IDENTIFIED BY 'pass123';
我想用这样的东西:
GRANT USAGE ON *.* TO @username@'%' IDENTIFIED BY pass;
如果有人能告诉我正确的陈述,我真的很感激.
谢谢你的到来!
解决方法:
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 varLogin@'localhost' IDENTIFIED BY varPassword;
GRANT USAGE ON test.* TO varLogin@'localhost' IDENTIFIED BY varPassword;
GRANT USAGE ON test.* TO varLogin@'localhost' IDENTIFIED BY PASSWORD varPasswordHashed;
## The following 3 lines won't cause any problem at create time
CREATE USER varLogin@'localhost' IDENTIFIED BY 'AnyPassordString';
GRANT USAGE ON test.* TO varLogin@'localhost' IDENTIFIED BY 'AnyPassordString';
GRANT USAGE ON test.* TO varLogin@'localhost' IDENTIFIED BY PASSWORD 'AnyPassordString';
END$$
DELIMITER;
内容总结
以上是互联网集市为您收集整理的mysql – 如何将GRANT与变量一起使用?全部内容,希望文章能够帮你解决mysql – 如何将GRANT与变量一起使用?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。