管理

用户管理

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:是创建一个用户之后的默认权限,其本身代表连接登录权限

posted @   半条咸鱼  阅读(54)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示