MySQL系列:(五)MySQL用户和权限管理

admin 2020年12月30日 1,091次浏览

1、用户的定义

1.1、用户名称格式

用户名@'白名单'

1.2、常见命名方式

username@'localhost'

username@'127.0.0.1'

username@'10.0.0.%'

username@'10.0.0.5%'

username@'10.0.0.0/255.255.254.0'

%:代表0~255

2、用户管理

2.1、创建用户

mysql> create user USER_NAME identified by 'PASSWORD';

2.2、查询用户

mysql> select user,host from mysql.user;

2.3、修改用户密码

mysql> alter user USER_NAME identified by 'NEW_PASSWORD';

2.4、删除用户

mysql> drop user USER_NAME;

2.5、用户密码过期策略管理

MySQL的默认用户密码过期时间为永不过期,但是为了安全,建议修改默认用户密码过期策略

# 查看默认用户密码策略
mysql> select @@default_password_lifetime;

# 修改默认用户密码策略
过期天数为“0”时,为密码永不过期
## 在MySQL运行过程中修改(需要使用root权限)
mysql> SET GLOBAL default_password_lifetime = [过期天数]

## 修改配置文件
default_password_lifetime=[过期天数]

## 使用ALTER修改某个特定用户(该命令会覆盖默认设置)
### 设置过期天数
mysql> ALTER USER USER_NAME PASSWORD EXPIRE INTERVAL [过期天数] DAY

### 禁用密码过期
mysql> ALTER USER USER_NAME PASSWORD EXPIRE NEVER

### 使用默认密码过期策略
mysql> ALTER USER USER_NAME PASSWORD EXPIRE DEFAULT

3、权限管理

权限列表

ALL, SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, with grant option(授权权限)

3.1、给予授权

  • 语法

    grant 权限 on 作用目标 to 用户 identified by 密码 with grant option;

  • 作用目标

    *.* :授权所有文件

    database.* :授权某一个目录下的所有文件

    database.t1:授权某一个表

  • 示例

# 授权用户'test'可以通过10.0.0网段管理数据库
mysql> grant all on *.* to USER_NAME;

3.2、查看授权

mysql> show  grants for USER_NAME;

3.3、回收授权

  • 语法
    revoke 权限 on 目标 from 用户;
  • 示例
 # 收回test@localhost用户的'delete'权限
 mysql> revoke delete on *.*  from USER_NAME;