插件窝 干货文章 mysql用户授权语句是什么

mysql用户授权语句是什么

权限 授权 username 授予 437    来源:    2025-03-30

MySQL 用户授权语句详解

MySQL 中用户授权主要通过 GRANT 语句实现,以下是常见的授权语法和使用示例:

基本授权语法

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名' [IDENTIFIED BY '密码'];

常用权限类型

  • ALL PRIVILEGES: 所有权限
  • CREATE: 创建数据库/表
  • DROP: 删除数据库/表
  • DELETE: 删除表中数据
  • INSERT: 插入数据
  • SELECT: 查询数据
  • UPDATE: 更新数据
  • ALTER: 修改表结构
  • INDEX: 创建/删除索引
  • EXECUTE: 执行存储过程
  • SHOW DATABASES: 查看数据库列表

授权示例

  1. 授予所有数据库的所有权限 (通常用于管理员)
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
  1. 授予特定数据库的所有权限
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
  1. 授予特定表的特定权限
GRANT SELECT, INSERT, UPDATE ON database_name.table_name TO 'username'@'%';
  1. 授予存储过程执行权限
GRANT EXECUTE ON PROCEDURE database_name.procedure_name TO 'username'@'localhost';
  1. 授予远程访问权限 (使用 '%' 作为主机名)
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%' IDENTIFIED BY 'password';

其他相关命令

  1. 刷新权限 (授权后必须执行)
FLUSH PRIVILEGES;
  1. 查看用户权限
SHOW GRANTS FOR 'username'@'localhost';
  1. 撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
  1. 删除用户
DROP USER 'username'@'localhost';

注意事项

  1. 授权后必须执行 FLUSH PRIVILEGES; 使更改生效
  2. % 通配符表示任意主机,但 localhost 是一个特例
  3. 生产环境中应遵循最小权限原则,只授予必要的权限
  4. MySQL 8.0+ 版本中创建用户和授权通常需要分开执行

希望这些信息对您有所帮助!如需更具体的授权方案,请提供您的具体需求。