原文是业界鼎鼎有名,linode的强力竞争对手,DigitalOcean公司写的。主要是方便他们的VPS客户对系统进行配置。我觉得写的很好,故翻译出来,方便各位用了linux vps但英文不是很熟练的朋友。关于DigitalOcean的介绍以及如何在上面购买机器,选择什么样的套餐
原文是业界鼎鼎有名,linode的强力竞争对手,DigitalOcean公司写的。主要是方便他们的VPS客户对系统进行配置。我觉得写的很好,故翻译出来,方便各位用了linux vps但英文不是很熟练的朋友。关于DigitalOcean的介绍以及如何在上面购买机器,选择什么样的套餐合适,请看我的这篇文章:DigitalOcean介绍及购买指南。如果你想要买DO的vps,请猛搓这个链接
本教程中标红行中的字段指的是需要输入或者定制的内容!
剩下的大部分应该是可以直接复制粘贴的。
翻译略
让我们使用MySQL shell来创建一个新用户:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
悲剧的是,此时这个账户对这个数据库没有任何权限。实际上,即使这个新用户试图用密码登陆,甚至连MySQL的shell都无法进入。
既然如此,首先要做的事就是提供用户访问所需的信息:
GRANT ALL PRIVILEGES ON . TO 'newuser'@'localhost';
命令中的星号(*)指的是此账户可以访问的数据库和表(分别的)--这个特定的命令允许用户对所有的数据库、表能读、编辑、执行、运行所有的任务。
一旦操作完毕对你的新用户的权限设置,总是确认重载所有的权限:
FLUSH PRIVILEGES;
现在你的更改已经生效了。
这有一个其他通常可能的权限使用的小列表:
给一个指定的用户提供某些权限,你可以使用如下这样的命令格式:
GRANT [type of permission] ON [database name].[table name] TO '[username]'@'localhost';
如果你想给用户授权访问所有的数据库、表的权限,请确认使用星号(*)在对应的数据库名/表名位置。
每一次你更新或者改变了权限,确认使用FLUSH PRIVILEGES 命令
如果你需要撤销一个权限,命令的格式与授权基本一致:
REVOKE [type of permission] ON [database name].[table name] FROM '[username]'@'localhost';
与你使用drop来删掉一个数据库一样的,你可以使用使用drop来完全的删除一个用户:
DROP USER 'demo'@'localhost';
要测试你的新用户,只需要退出后,使用新用户登录,即可测试。
quit
mysql -u[username] -ppassword -A DATABASE
后记:
在实际运行中,某些账户只需要select权限,某些只需要insert权限,某些只需要update权限,为了安全,可以考虑最小化权限,在遭受攻击时,也可以作为一道可能的安全防线。
限于本人英文阅读能力,中文表达能力,计算机水平能力有限,其中翻译的错误,表达不清楚肯定存在,如果有错漏之处,希望能留言指出,谢谢。
原文地址:[翻译]如何在mysql上创建新用户、授予权限, 感谢原作者分享。