一、数据库权限内层级:
1、全局层级:适用于服务器中所有数据库,存储在mysql.user表中
2、数据库层级:适用于一个数据库中的所有目标,存储在mysql.db和mysql.host表中
3、表层级:适用于某一表中的所有列,存储在mysql.tables_priv表中
4、列层级:适用于一个给定表中的某一列,存储在mysql.columns_priv表中
5、子程序层级:适用于已存储的子程序,存储在mysql.procs_priv表中
二、用户管理
1、CREATE USER ‘username’@‘hostname’ IDENTIFIED BY ‘password’;
2、DROP USER ‘username’@‘hostname’
3、ALTER USER ‘username’@‘hostname’ IDENTIFIED BY ‘new password’;
#hostname可以是主机名,IP,也可以是%表示任意主机名
三、权限管理
1、授权
grant all privileges on dbname.tablename to ‘username’@‘hostname’;
#其中tablename可用*代替
2、撤销(收回)权限
revoke all privileges on dbname.tablename from ‘username’@‘hostname’;
3、刷新权限
FLUSH PRIVILEGES;
4、查看权限
show grant for ‘username’@‘hostname’;
四、忘记root用户密码解决方法
第1步:关闭mysql服务
net stop mysql
第2步:重启mysql时关闭权限验证
mysqld --defaults-file="#my.ini数据路径"–console–skip-grant-tables --shared-memory
console#控制台输出
skip-grant-tables#跳过赋权
shared-memory#共享内存
配置文件路径可使用show variables like ‘%datadir%’; 查看
第3步:修改root密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘’
报错后执行 FLUSH PRIVILEGES; 刷新权限
再次修改
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY '’
第4步:正常启动mysql服务