首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash脚本中查询MySQL显示授权包括本地文件

问在bash脚本中查询MySQL显示授权包括本地文件
EN

Stack Overflow用户
提问于 2015-09-12 15:30:11
回答 1查看 149关注 0票数 0

在继续之前,我试图编写一个bash脚本,以检查特定的MySQL用户是否拥有适当的特权。

如果我直接从mysql执行命令,我会得到以下信息:

代码语言:javascript
复制
$ mysql -u db_user -pmypassword
mysql> show grants;
+------------------------------------------------------------------------------------------------------------------------------+
| Grants for db_user@localhost                                                                                            |
+------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'localhost' IDENTIFIED BY PASSWORD 'some-password-here' |

这正好给了我我想要的东西。

当我把它写进剧本的时候,奇怪的行为就开始起作用了。我编写了这个非常基本的脚本来说明:

代码语言:javascript
复制
passwd=mypassword
user=db_user

line=`mysql -u ${user} -p${passwd}  -e "show grants for '${user}'@'localhost';"`
echo $line

我得到以下信息:

代码语言:javascript
复制
Grants for db_user@localhost GRANT ALL PRIVILEGES ON blah.tst dropsite.sh mysql.sh runasroot.sh testopts.sh TO 'db_user'@'localhost' IDENTIFIED BY PASSWORD 'some-password-here' 

不知何故,本地目录中的文件也被列出了。他们是

代码语言:javascript
复制
blah.tst     <----- This test file was added when I discovered the behavior 
dropsite.sh 
mysql.sh 
runasroot.sh 
testopts.sh

我似乎搞不懂为什么会出现这些。有人有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-12 15:32:58

引用你的变量:

代码语言:javascript
复制
echo "$line"

当您不引用变量时,值中的通配符将被展开,因此结果中的*.*将被替换为与该模式匹配的所有文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32540536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档