十八、权限授予和回收

299 阅读1分钟

一、权限管理

在 MySQL 数据库中,使用 grant 命令授权,revoke 命令撤销授权。语法如下:

# 授权
grant all privileges on databaseName.tableName to '用户名'[@'主机名']
# 撤销授权
revoke all privileges on databaseName.tableName from '用户名'[@'主机名']
# 刷新权限
FLUSH PRIVILEGES;
# 查看权限
show grant for '用户名'[@'主机名']

二、MySQL 权限列表

使用 grant 和 revoke 进行授权和撤销授权时,需要指定具体哪些权限,这些权限答题分为三类:数据列、结构类和管理类。

数据结构管理
SELECTCRETAEUSAGE
INSERTALTERGRANT
UPDATEINDEXSUPER
DELETEDROPPROCESS
FILECREATE TEMPORARY TABLESSHUTDOWN
SHOW VIEWSHOW DATABASES
CREATE ROUTINELOCK TABLES
EXECUTEREFERECES
CREATE VIEWREPUCATION CUENT
EVENTREPUCATION SLAVE
TRIGGERCREATE USER

例如:

  1. 查看 root 用户的权限
show grants for 'root'
  1. 将查询mydb数据库的权限授予zhangsan
grant select on mydb.* to 'zhangsan'@'%';
FLUSH PRIVILEGES;

TIP:

  1. 在授予或回收权限后需运行 FLUSH PRIVILEGES 语句来刷新;
  2. 如果授予某个用户访问所有数据库的所有表的权限的时候使用如下语法: ``sql grant all privileges on . to '用户名'[@'主机名']