MySQL SHOW GRANTS语句:查看角色权限(附带实例)
在 MySQL 中,授予角色权限后,可以使用 SHOW GRANTS 语句查看角色拥有的权限。
例如,我们授予了角色 student 对图书表、试卷表和班级表的只读权限,使用 SHOW GRANTS 语句查看角色 student 拥有的权限,如下所示:
MySQL 规定,只要创建了一个角色,系统就会自动授予该角色 USAGE 权限,意思是连接登录数据库的权限。上述代码的最后 3 行代表我们授予角色 student 的权限,也就是对图书表、试卷表和班级表的只读权限。
使用 SHOW GRANTS 语句查看角色 teacher 拥有的权限,如下所示:
例如,我们授予了角色 student 对图书表、试卷表和班级表的只读权限,使用 SHOW GRANTS 语句查看角色 student 拥有的权限,如下所示:
mysql> SHOW GRANTS FOR 'student'; +--------------------------------------------------------------------------------------+ | Grants for student@% | +--------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'student'@'%' | | GRANT SELECT ON `demo`.`book` TO `student`@'%' | | GRANT SELECT ON `demo`.`test_paper` TO `student`@'%' | | GRANT SELECT ON `demo`.`class` TO `student`@'%' | +--------------------------------------------------------------------------------------+可以看到,角色 student 除了拥有对表的只读权限,还拥有 USAGE 权限。
MySQL 规定,只要创建了一个角色,系统就会自动授予该角色 USAGE 权限,意思是连接登录数据库的权限。上述代码的最后 3 行代表我们授予角色 student 的权限,也就是对图书表、试卷表和班级表的只读权限。
使用 SHOW GRANTS 语句查看角色 teacher 拥有的权限,如下所示:
mysql> SHOW GRANTS FOR 'teacher'; +--------------------------------------------------------------------------------------+ | Grants for teacher @% | +--------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO `teacher`@`%` | | GRANT SELECT ON `demo`.`book` TO `teacher`@`%` | | GRANT SELECT, INSERT, UPDATE, DELETE ON `demo`.`test_paper` TO `teacher`@`%` | +--------------------------------------------------------------------------------------+可以看到,角色 teacher 拥有对图书表的只读权限和对试卷表的增、删、改、查权限。