八、用户管理

MySQL 是一个多用户的数据库系统,按权限,用户可以分为两种:root 用户,超级管理员,和由 root 用户创建的普通用户。

一、MySQL 创建用户

CREATE USER username IDENTIFIED BY 'password';

1.1查看用户

SELECT USER,HOST FROM USER(该表位于 mysql 库中)

示例

创建一个 u_sxt 的用户,并查看创建是否成功。

select user,host from mysql.user

create user u_sxt IDENTIFIED by 'sxt'

1.2分配权限

新用户创建完后是无法登陆的,需要分配权限。

GRANT 权限 ON 数据库.表 TO 用户名@登录主机GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost'

登陆主机:

  • % 匹配所有主机
  • localhost localhost 不会被解析成 IP 地址,直接通过 UNIXsocket 连接
  • 127.0.0.1 会通过 TCP/IP 协议连接,并且只能在本机访问;
  • ::1 ::1 就是兼容支持 ipv6 的,表示同 ipv4 的 127.0.0.1

权限列表

  • ALTER: 修改表和索引。
  • CREATE: 创建数据库和表。
  • DELETE: 删除表中已有的记录。
  • DROP: 删除数据库和表。
  • INDEX: 创建或删除索引。
  • INSERT: 向表中插入新行。
  • SELECT: 检索表中的记录。
  • UPDATE: 修改现存表记录。
  • FILE: 读或写服务器上的文件。
  • PROCESS: 查看服务器中执行的线程信息或杀死线程。
  • RELOAD: 重载授权表或清空日志、主机缓存或表缓存。
  • SHUTDOWN: 关闭服务器。
  • ALL: 所有权限,ALL PRIVILEGES 同义词。
  • USAGE: 特殊的 "无权限" 权限

示例

为 u_sxt 用户分配只能查询 bjsxt 库中的 employees 表,并且只能在本机登陆的权限。

grant select ON bjsxt.employees to 'u_sxt'@'localhost'

1.3刷新权限

每当调整权限后,通常需要执行以下语句刷新权限

FLUSH PRIVILEGES

1.4删除用户

DROP USER username@localhost

示例

删除 u_sxt 用户

drop user 'u_sxt'@'localhost'
原文地址:https://www.cnblogs.com/qiaoxin11/p/12807568.html