如何在MySQL中创建新用户并授权权限

卡拉先生
发布于 2020年08月26日 | 上次编辑:2020年08月26日

如何在 MySQL 中创建新用户并授权权限
如何在 MySQL 中创建新用户并授权权限

前言

MySQL 是一种开源数据库管理软件,可帮助用户存储,组织和检索数据。它很细的权限设置,可以授权特定用户查看指定的表或库。

我们将在本教程中学习到最常见的 MySQL 基本语法。

如何创建一个新用户

在 MySQL 新手安装教程中,我们用 root 用户的身份在 MySQL 中进行操作,root 权限用户对 MySQL 中的所有数据库具有最高权限。但直接使用 root 用户操作数据库并不一定是好事。接下来,我们来学习如何创建特定权限用户。

让我们从在 MySQL Shell 中创建一个新用户开始:

mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

注意1:'newuser' 及 'password' 均为自定义变量,可根据大家的实际情况来改变。

注意2: 在本教程中 MySQL shell 添加用户时,命令中的localhost不是服务器 ip 地址,localhost 是主机名,意思是“这台计算机”。MySQL 会对这个特殊的主机名进行特殊处理:当使用这台主机的用户登录 MySQL 时,MySQL 会尝试使用 Unix 套接字文件连接到本地服务器。因此,当我们打算通过 SSH 连接到服务器时,或者当我们运行本地 mysql 客户端连接到本地 MySQL 服务器时,通常会使用localhost

在创建用户之后,新创建的用户无权对数据库进行任何操作。因为刚创建的新用户并没有被赋予任何权限。只是生成了一个可以用密码登录的用户而已。

所以,接下来,在创建用户之后,下一步就是给这个用户赋予对应的权限。

mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

这条命令中的两个* 表示允许此用户(newuser)访问数据库和表单,以及允许此用户比读写、编辑、更改、执行所有数据库和表单的所有任务。

请注意,这条语句赋予了 newuser 对数据库中所有内容的完全 root 访问权限。本条命令仅作为演示,并不建议大家按此操作,赋予常用账号 root 一样的权限并作为日常使用,是非常危险的,这会让数据库处于高风险状态。谨慎。

接下来,在确认新用户设置权限后,请务必重新加载所有权限。

mysql> FLUSH PRIVILEGES;

运行这条命令后,我们的更改就立即生效了。

如何授权不同用户不同权限

以下是我们创建的用户常见权限列表:

  • ALL PRIVILEGES:正如上文所说,这是允许用户完全访问 MySQL 指定数据库(如果未选择数据库,则可以跨系统全局访问)
  • CREATE:允许创建新表或数据库
  • DROP:允许删除表或数据库
  • DELETE:允许从表中删除行
  • INSERT:允许在表中插入行
  • SELECT:允许使用SELECT 命令来读取数据库
  • UPDATE:允许更新表单
  • GRANT OPTION:允许授权或删除其他用户的权限

要为指定用户授权,可使用以下命令

mysql> GRANT type_of_permission ON database_name.table_name TO ‘username’@'localhost’;

注意:在取消权限时,语法变为FROM,与我们授权权限时使用的TO 有区别,请特别注意。

我们可以使用以下命令来查看用户当前权限:

SHOW GRANTS username;

我们可以使用DROP 来删除数据库,我们也可以使用DROP 来彻底删除用户。

mysql> DROP USER ‘username’@‘localhost’;

切换新用户,我们可以用以下命令注销当前用户的登录状态。

mysql> quit

然后在终端输入需要登录的用户重新登录:

$ mysql -u [username] -p

总结

读到这里,我想大家应该学会使用 MySQL 来添加用户和授权用户权限了。从这篇教程开始,我们开始尝试数据库的不同权限设置对数据库带来的影响。关于 MySQL 数据库快速查询,推荐大家试试「卡拉搜索」,一行代码快速部署,快速提升你的 MySQL 数据库搜索效率。

扩展阅读

数据库 系列教程

相关文章

友情链接更新日志© 2020, 卡拉搜索, Built with ❤️ in San Francisco + Beijing

京ICP备15049164号-3