管理
用户管理
1、MySQL 用户存储在 user 表中
2、user 表的字段
(1)host:允许登录的位置,如 localhost、其他 IP
(2)user:用户名
(3)authentication_string:对应用户的密码,非明文存放,通过 PASSWORD() 函数加密
3、创建用户
CREATE USER '用户名'@'登录位置' IDENTIFIED BY '密码';
4、删除用户
DROP USER '用户名'@'登录位置';
5、root 修改普通用户密码
(1)修改当前用户密码
SET PASSWORD = PASSWORD('新密码');
(2)修改其他用户密码,当前用户需要权限
SET PASSWORD FOR '用户名'@'登录位置' = PASSWORD('新密码');
6、修改 root 密码
(1)使用 mysqladmin 命令在命令行指定新密码
mysqladmin -u root -h 登录位置 -p password "新密码"
(2)修改 MySQL 数据库的 user 表,需要刷新权限
UPDATE mysql.user set authentication_string = PASSWORD ('新密码') WHERE User = "root" and Host="登录位置";
FLUSH PRIVILEGES;
(3)使用 SET 语句修改 root 用户的密码(如上同)
7、事项
(1)默认用户只能查看一个系统数据库
(2)创建用户不指定 host,即 '用户名' 不加 @'登陆位置',则为 %,表示所有 IP 都有连接权限
(3)CREATE USER '用户名'@'192.168.1.%' 表示用户在 192.168.1.* 的 IP 都可以登录
(4)删除用户时,若 host 不为 %,则需要指定 host 值
(5)修改密码时,可以使用 MD5() 函数加密
权限管理
1、授权用户
GRANT 权限列表 ON 数据库名.对象名 TO '用户名'@'登录位置' IDENTIFIED BY '密码';
(1)IDENTIFIED BY:可选参数,若用户存在,则修改密码;若用户不存在,则创建用户
2、回收用户权限
REVOKE 权限列表 ON 数据库名.对象名 FROM '用户名'@'登录位置';
3、权限生效指令
FLUSH PRIVILEGES;
4、查看用户权限
SHOW GRANTS FOR 用户名;
5、事项
(1)权限列表,使用逗号分隔多个权限,ALL 表示所有权限
(2)库.* 表示某个数据库的所有数据对象
(3)*.* 表示所有数据库的所有数据对象
(4)* 表示当前数据库中的所有表
6、权限列表
ALL / ALL PRIVILEGES:代表全局或者全数据库对象级别的所有权限
ALTER:代表允许修改表结构的权限,但必须要求有 CREATE 和 INSERT 权限配合。如果是 RENAME 表名,则要求有 ALTER 和 DROP 原表, CREATE 和 INSERT 新表的权限
ALTER ROUTINE:代表允许修改或者删除存储过程、函数的权限
CREATE:代表允许创建新的数据库和表的权限
CREATE ROUTINE:代表允许创建存储过程、函数的权限
CREATE TABLESPACE:代表允许创建、修改、删除表空间和日志组的权限
CREATE TEMPORARY TABLES:代表允许创建临时表的权限
CREATE USER:代表允许创建、修改、删除、重命名USER的权限
CREATE VIEW:代表允许创建视图的权限
DELETE:代表允许删除行数据的权限
DROP:代表允许删除数据库、表、视图的权限,包括 TRUNCATE TABLE 命令
EVENT:代表允许查询,创建,修改,删除 MySQL 事件
EXECUTE:代表允许执行存储过程和函数的权限
FILE:代表允许在 MySQL 可以访问的目录进行读写磁盘文件操作,可使用的命令包括 LOAD DATA INFILE,SELECT …… INTO OUTFILE,LOAD FILE()函数
GRANT OPTION:代表是否允许此用户授权或者收回给其他用户你给予的权限,重新付给管理员的时候需要加上这个权限
INDEX:代表是否允许创建和删除索引
INSERT:代表是否允许在表里插入数据,同时在执行 ANALYZE TABLE,OPTIMIZE TABLE,REPAIR TABLE 语句的时候也需要 INSERT 权限
LOCK:代表允许对拥有 SELECT 权限的表进行锁定,以防止其他链接对此表的读或写
PROCESS:代表允许查看 MySQL 中的进程信息,比如执行 SHOW PROCESSLIST,MYSQLADMIN PROCESSLIST,SHOW ENGINE 等命令
REFERENCE:在 5.7.6 版本之后引入,代表是否允许创建外键
RELOAD:代表允许执行 FLUSH 命令,指明重新加载权限表到系统内存中,REFRESH 命令代表关闭和重新开启日志文件并刷新所有的表
REPLICATION CLIENT:权限代表允许执行 SHOW MASTER STATUS,SHOW SLAVE STATUS,SHOW BINARY LOGS命令
REPLICATION SLAVE:代表允许 SLAVE 主机通过此用户连接 MASTER 以便建立主从复制关系
SELECT:代表允许从表中查看数据,某些不查询表数据的 SELECT 执行则不需要此权限,如 SELECT 1+1,SELECT PI() + 2,且 SELECT 权限在执行 UPDATE / DELETE 语句中含有 WHERE 条件的情况下也是需要的
SHOW DATABASES:代表通过执行SHOW DATABASES命令查看所有的数据库名
SHOW VIEW:代表通过执行 SHOW CREATE VIEW 命令查看视图创建的语句
SHUTDOWN:代表允许关闭数据库实例,执行语句包括 MYSQLADMIN SHUTDOWN
SUPER:代表允许执行一系列数据库管理命令,包括 KILL 强制关闭某个连接命令,CHANGE MASTER TO 创建复制关系命令,以及 CREATE / ALTER / DROP SERVER 等命令
TRIGGER:代表允许创建,删除,执行,显示触发器的权限
UPDATE:代表允许修改表中的数据的权限
USAGE:是创建一个用户之后的默认权限,其本身代表连接登录权限
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战