《MySQL 入门教程》第 05 篇 账户和权限,Java入门你值得拥有

本文介绍了MySQL中的账户权限管理,包括如何使用GRANT语句授予权限,如全局、数据库、表和列级别,以及如何使用REVOKE撤销权限。此外,还详细阐述了MySQL 8.0引入的新特性——角色,如何创建、授权、指定和管理角色,以简化权限管理。
摘要由CSDN通过智能技术生成

±------------------------------------------+

1 row in set (0.00 sec)

复制代码

使用 GRANT 语句可以为用户授予权限。

5.2.1 授予权限

GRANT 语句基本语法如下:

GRANT privilege, …

ON privilege_level

TO account_name;

复制代码

GRANT 语句支持一次授予多个权限,使用逗号进行分隔。

privilege_level 指定权限的作用级别,包括:

  • 全局权限,作用于 MySQL 服务器中的所有数据库。全局权限使用*.*表示,例如,以下语句授予 dev01@localhost 用户查询所有数据库中的所有表的权限:

mysql> GRANT SELECT

-> ON .

-> TO dev01@localhost;

Query OK, 0 rows affected (0.01 sec)

mysql> SHOW GRANTS FOR dev01@localhost;

±-------------------------------------------+

| Grants for dev01@localhost |

±-------------------------------------------+

| GRANT SELECT ON . TO dev01@localhost |

±-------------------------------------------+

1 row in set (0.00 sec)

复制代码

全局权限存储在 mysql.user 表中。

  • 数据库权限,作用于指定数据库中的所有对象。数据库权限使用db_name.*表示,例如,以下语句授予 dev01@localhost 用户查询数据库 world 中的所有表的权限:

mysql> GRANT ALL

-> ON world.*

-> TO dev01@localhost;

Query OK, 0 rows affected (0.01 sec)

mysql> SHOW GRANTS FOR dev01@localhost;

±---------------------------------------------------------+

| Grants for dev01@localhost |

±---------------------------------------------------------+

| GRANT SELECT ON . TO dev01@localhost |

| GRANT ALL PRIVILEG Java开源项目【ali1024.coding.net/public/P7/Java/git】 ES ON world.* TO dev01@localhost |

±---------------------------------------------------------+

2 rows in set (0.00 sec)

复制代码

数据库权限存储在 mysql.db 表中。

  • 表权限,作用于指定表的所有列。数据库权限使用db_name.table_name表示;如果不指定 db_name,使用默认数据库;如果没有默认数据库,将会返回错误。例如,以下语句授予 dev01@localhost 用户数据库 world 中country 表的增删改查权限:

mysql> GRANT SELECT, INSERT, UPDATE, DELETE

-> ON world.country

-> TO dev01@localhost;

Query OK, 0 rows affected (0.01 sec)

mysql> SHOW GRANTS FOR dev01@localhost;

±---------------------------------------------------------------------------------+

| Grants for dev01@localhost |

±---------------------------------------------------------------------------------+

| GRANT SELECT ON . TO dev01@localhost |

| GRANT ALL PRIVILEGES ON world.* TO dev01@localhost |

| GRANT SELECT, INSERT, UPDATE, DELETE ON world.country TO dev01@localhost |

±---------------------------------------------------------------------------------+

3 rows in set (0.00 sec)

复制代码

表权限存储在 mysql.tables_priv 表中。

  • 列权限,作用于指定表的指定列。每个列权限都需要指定具体的列名。例如,以下语句授予 dev01@localhost 用户在 world.country 表中 code 和 name 字段的查询权限,以及 population 字段的修改权限:

mysql> GRANT SELECT(code, name), UPDATE(population)

-> ON world.country

-> TO dev01@localhost;

Query OK, 0 rows affected (0.01 sec)

mysql> SHOW GRANTS FOR dev01@localhost;

±---------------------------------------------------------------------------------------------------------------------------------+</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值