mysql 账号安全_mysql 账号安全管理

[TOC]

[TOC]

## 1 访问控制

MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权,既不能多也不能少。换句话说,用户不能对过多的数据具有过多的访问权。

>不要使用root

应该严肃对待root登录的使用。仅在绝对需要时使用它(或许在你不能登录其他管理账号时使用)。不应

该在日常的MySQL操作中使用root。

## 2 管理用户

> MySQL用户账号和信息存储在名为mysql的MySQL数据库中。一般不需要直接访问mysql数据库和表(你稍后会明白这一点),但有时需要直接访问。需要直接访问它的时机之一是在需要获得所有用户账号列表

时。

```

输入: use mysql;

select user from user;

分析:mysql数据库有一个名为user的表,它包含所有用户账号。user

表有一个名为user的列,它存储用户登录名。

```

### 2.1创建用户账号

为了创建一个新用户账号,使用CREATE USER语句

```

create user ben identified by 'password';

CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '*root-password*';

CREATE USER 'root'@'::1' IDENTIFIED BY '*root-password*';

REATE USER创建一个新用户账号。在创建用户账号时不一定需

要口令,不过这个例子用IDENTIFIED BY 'password'给出了一个口令。

```

![](https://img.kancloud.cn/bb/01/bb01a710546b57aa47d0bd8bcde6ffec_666x222.png)

*****

关于 mysql 密码策略相关参数;

1)validate_password_length  固定密码的总长度;

2)validate_password_dictionary_file 指定密码验证的文件路径;

3)validate_password_mixed_case_count  整个密码中至少要包含大/小写字母的总个数;

4)validate_password_number_count  整个密码中至少要包含阿拉伯数字的个数;

5)validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;

关于 validate_password_policy 的取值:

0/LOW:只验证长度;

1/MEDIUM:验证长度、数字、大小写、特殊字符;

2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;

6)、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;

版权声明:本文为CSDN博主「csdn-华仔」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/hello_world_qwp/article/details/79551789

*****

为重新命名一个用户账号,使用RENAME USER语句,

```

rename user ben to lisa;

```

### 2.2 删除用户账号

为了删除一个用户账号(以及相关的权限),使用DROP USER语句,

```

drop user ben;

```

### 2.3 设置访问权限

在创建用户账号后,必须接着分配访问权限。新创建的用户账号没有访

问权限。它们能登录MySQL,但不能看到数据,不能执行任何数据库操作。

> 为看到赋予用户账号的权限,使用SHOW GRANTS FOR,

```

show grants for ben;

```

为设置权限,使用GRANT语句。GRANT要求你至少给出以下信息:

 要授予的权限;

 被授予访问权限的数据库或表;

 用户名。

以下例子给出GRANT的用法:

```

grant select on test.* to ben;

分析:此GRANT允许用户在test.*(test数据库的所

有表)上使用SELECT。通过只授予SELECT访问权限,用户ben

对 test 数据库中的所有数据具有只读访问权限。

```

*GRANT*的反操作为**REVOKE**,用它来撤销特定的权限。下面举一个例子:

```

revoke select on test.* from ben;

分析:这条REVOKE语句取消刚赋予用户ben的SELECT访问权限。被

撤销的访问权限必须存在,否则会出错。

```

GRANT和REVOKE可在几个层次上控制访问权限:

 整个服务器,使用GRANT ALL和REVOKE ALL;

 整个数据库,使用ON database.*;

 特定的表,使用ON database.table;

 特定的列;

 特定的存储过程。

### 2.4更改口令

为了更改用户口令,可使用SET PASSWORD语句。新口令必须如下加密:

```

set password for ben = password('12ddd');

分析: SET PASSWORD更新用户口令。新口令必须传递到Password()函

数进行加密。

```

> SET PASSWORD还可以用来设置你自己的口令:

> 输入: set password = password('W3c@2020')

> 分析:在不指定用户名时,SET PASSWORD更新当前登录用户的口令。

;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值