临渊羡鱼,不如退而结网
.

mysql用户账号、权限、密码管理

一:用户账号管理

查看当前可登录数据库的用户

mysql>SELECT host,user FROM mysql.user;

 创建新用户

mysql>CREATE USER username@host IDENTIFIED BY '密码';

 注意:username是用户名,host用于指定登录的主机,如果是本地用户用localhost,如果需要远程连接可以指定ip,或者使用“%”可以从任意主机登录。

删除用户

mysql>DROP USER pangpang@localhost ;

 修改用户名

是对库名为mysql的数据库中的user表进行更新,这里别搞混了,不是ORACLE、SQLserver的那个mysql,以下默认皆是。

mysql>USE mysql;
mysql>UPDATE user SET USER="新用户名" WHERE USER ="旧用户名";

或者直接指定哪个数据库和表名

 禁用账号

mysql>ALTER USER pangpang@localhost ACCOUNT LOCK;

启用账号

mysql>ALTER USER pangpang@localhost ACCOUNT UNLOCK;

 二:用户密码管理

修改用户密码

mysql> ALTER USER pangpang@localhost IDENTIFIED BY "2wsx@WSX";

 设置密码有效期

expire是失效、终止的意思

mysql> ALTER USER pangpang@localhost PASSWORD EXPIRE INTERVAL 100 DAY;

 禁用密码过期功能

mysql> ALTER USER pangpang@localhost PASSWORD EXPIRE NEVER;

恢复默认用户密码策略

mysql> ALTER USER pangpang@localhost PASSWORD EXPIRE DEFAULT;

三:用户权限管理

Mysql 通过GRANT命令进行赋权操作

常用权限参考

usage 无权限

SELECT 查询表记录

INSERT 插入表记录

UPDATE 更新表记录

DELETE 删除表记录

CREATE 创建库、表

DROP 删除库、表

RELOAD 有重新载入授权 必须拥有reload权限,才可以执行flush [tables | logs | privileges]

SHUTDOWN 允许关闭mysql服务 使用mysqladmin shutdown 来关闭mysql

PROCESS 允许查看用户登录数据库服务器的进程 ( show processlist; )

FILE 导入、导出数据

REFERENCES 创建外键

INDEX 创建索引

ALTER 修改表结构

SHOW DATABASES 查看库

SUPER 关闭属于任何用户的线程

CREATE TEMPORARY TABLES 允许在create table 语句中使用 TEMPORARY关键字

LOCK TABLES 允许使用 LOCK TABLES 语句

EXECUTE 执行存在的Functions,Procedures

REPLICATION SLAVE 从主服务器读取二进制日志

REPLICATION CLIENT 允许在主/从数据库服务器上使用 show status命令

CREATE VIEW 创建视图

SHOW VIEW 查看视图

CREATE ROUTINE 创建存储过程

ALTER ROUTINE 修改存储过程

CREATE USER 创建用户

EVENT 有操作事件的权限

TRIGGER, 有操作触发器的权限

CREATE TABLESPACE 有创建表空间的权限

GRANT命令的常见格式

命令解析

作用

GRANT 权限 ON 数据库.表单名称 TO 账户名@主机名

对某个特定数据库中的特定表单赋权

GRANT 权限 ON 数据库.* TO 账户名@主机名

对某特定数据库中的所有表单赋权

GRANT 权限 ON *.* TO 账户名@主机名

对所有数据库及其所有表单赋权

GRANT 权限1,权限2 ON 数据库.* TO 账户名@主机名

对某数据库的所有表单赋多个权

GRANT ALL PRIVILEGES ON *.* TO 账户名@主机名

对全部数据及表单赋予所有权限(慎用)

查看当前用户的权限

mysql> SHOW GRANTS;

 查看特定用户的权限

mysql> SHOW GRANTS FOR pangpang@localhost;

 给用户添加某权限

mysql>GRANT UPDATE ON *.* TO pangpang@localhost;

 赋予多项权限用逗号隔开

mysql>  GRANT DELETE,CREATE ON *.* TO pangpang@localhost;

 删除用户某项权限

mysql> REVOKE DELETE ON *.* FROM pangpang@localhost;

 同时删除所有权限

mysql> REVOKE ALL ON *.* FROM pangpang@localhost;

 

posted @ 2019-11-07 11:12  胖胖小飞侠  阅读(891)  评论(0编辑  收藏  举报