「这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战」
MySQL——数据库用户管理
SQLyog可视化操作
主机地址要与登录的时候一致
SQL命令操作
系统用户表:mysql数据库>user表
用户操作的本质就是对user表增删改查
user表:存放用户账户信息以及全局级别(所有数据库)权限,决定了来自哪些主机的哪些用户可以访问数据库实例,如果有全局权限则意味着对所有数据库都有此权限。
补充: MySQL 权限介绍 mysql中存在4个控制权限的表,分别为user表,db表,tables_priv表,columns_priv表
mysql权限表的验证过程为:
- 先从user表中的Host,User,Password这3个字段中判断连接的ip、用户名、密码是否存在,存在则通过验证。
- 通过身份认证后,进行权限分配,按照user,db,tables_priv,columns_priv的顺序进行验证。即先检查全局权限表user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db, tables_priv,columns_priv;如果为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;如果db中为N,则检查tables_priv中此数据库对应的具体表,取得表中的权限Y,以此类推。
数据库用户管理操作实例
-- ==================数据库用户管理=========================
-- 创建用户
-- 格式:CREATE USER 用户名 IDENTIFIED BY '密码'
CREATE USER '事务' IDENTIFIED BY '123456'
-- 删除指定用户
DROP USER '索引'
-- 修改当前用户密码
SET PASSWORD =PASSWORD('123456')
-- 修改指定用户密码
-- 格式:SET PASSWORD FOR 用户名= PASSWORD('新密码')
SET PASSWORD FOR '事务' =PASSWORD('111111')
-- 用户重命名
-- 格式: RENAME USER 原名 TO 新名字
RENAME USER '事务'TO '索引'
-- 用户授权 ALL PRIVILEGES 全部权限,除了给别的用户授权,其他都可以
-- 格式:GRANT 哪些权限 on 数据库.表 to 用户
GRANT ALL PRIVILEGES ON *.*TO '索引' -- 给所有的库和表授予全部的权限
-- 查看指定用户的权限
SHOW GRANTS FOR '索引' -- GRANT ALL PRIVILEGES ON *.* TO '索引'@ '%' ( 注意:%:localhost)
-- 查看管理员的权限
SHOW GRANTS FOR root@localhost -- root用户权限, GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION(可以给别的 用户授权)
-- 撤销权限
REVOKE ALL PRIVILEGES ON *.* FROM '索引'