mysql 建立用户 对比_mysql 用户权限管理

MySQL用户权限管理

1.linux用户和mysql用户对比

linux系统

mysql数据库

用户的作用

1.登录系统 2.管理系统文件、服务

1.登录数据库 2.管理数据库数据

创建用户

1.useradd 2.adduser

1.create user root@'localhost'; 2.grant ...

用户密码

1.password lhd 2.useradd lhd -p 12345678

1.create user 2.grant 3.mysqladmin

删除用户

1.userdel -r

1.drop user root@'localhost'; 2.delete

修改用户

1.usermod

1.update 2.grant

2.在mysql中,用户是怎么定义的?

#在MySQL中,一个完整的用户是: '用户'@'主机域'

1.用户名定义方法:

1)如果是数字为用户名,需要加引号

mysql> create user '123'@'locahost';

2)如果是字符为用户名,不需要加引号

mysql> create user lhd@'locahost';

2.主机域的定义方式:

1)localhost

2)127.0.0.1

3)db01

4)::1

5)%

6)10.0.0.% (10.0.0.1-255)

7)10.0.%.%

8)10.%.%.%

9)10.0.0.5% (10.0.0.50-59)

10)10.0.0.0/255.255.255.0

#可以设置,但是不能使用该用户连接

11)10.0.0.0/24

3.用户管理

1)创建用户并设置密码

mysql> create user lhd@'172.16.1.%' identified by '123';

Query OK, 0 rows affected (0.02 sec)

2)查看用户

mysql> select user,host from mysql.user;

+--------+------------------------+

| user | host |

+--------+------------------------+

| qiudao | 10.0.0.0/24 |

| lhd | 10.0.0.0/255.255.255.0 |

| lhd | 172.16.1.% |

| root | localhost |

+--------+------------------------+

4 rows in set (0.00 sec)

3)删除用户

mysql> drop user qiudao@'10.0.0.0/24';

Query OK, 0 rows affected (0.00 sec)

4)修改用户密码

#1.方式一:命令行修改密码

[root@db02 /service]# mysqladmin -uroot -p password

Enter password: 123456

New password: 123

Confirm new password: 123

#2.方式二:授权的方式修改密码

mysql> grant all on *.* to lhd@'10.0.0.0/255.255.255.0' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

#3.方式三:更新数据库密码

mysql> update mysql.user set password=PASSWORD('123456') where user='lhd' and host='172.16.1.%';

Query OK, 1 row affected (0.01 sec)

Rows matched: 1 Changed: 1 Warnings: 0

#4.方式四:直接设置密码

mysql> set password=PASSWORD('123456');

Query OK, 0 rows affected (0.00 sec)

5)忘记root密码怎么办

#1.停止数据库

#2.跳过授权表和网络启动

#3.连接数据库

#4.刷新授权表

#5.修改密码

#6.正常启动数据库

4.权限管理

1)权限管理的命令

mysql> grant all on *.* to root@'172.16.1.51' identified by '123';

grant all on *.* to root@'172.16.1.51' identified by '123';

grant # 授权命令

all # 所有权限

on # 在。。。上

*.* # 所有库.(包含)所有表

to # 给。。

root@'172.16.1.51' # 定义的用户 '用户名'@'主机域'

identified # 设置密码

by # 是

'123';

2)查看所有权限

#1.回收权限

mysql> revoke select on *.* from root@'172.16.1.51';

Query OK, 0 rows affected (0.00 sec)

#2.查看用户的权限

mysql> show grants for root@'172.16.1.51';

#3.所有权限包括:

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, GRANT

5.授权的对象

grant all on *.* to root@'172.16.1.%' identified by '123'; # 所有库下的所有表

grant all on mysql.* to root@'172.16.1.%' identified by '123'; # mysql库下的所有表,单库授权

grant all on mysql.user to root@'172.16.1.%' identified by '123'; # 单表授权

#单列授权,企业称之为脱敏,脱敏:脱离敏感信息

1.普通用户只能查看用户名字

mysql> grant select(user) on mysql.user to diaosi@'172.16.1.%' identified by '123';

2.VIP用户可以查看用户用户较多的信息

mysql> grant select(user,host) on mysql.user to diaosi@'172.16.1.%' identified by '123';

3.超级VIP可以查看用户所有的信息

mysql> grant select on mysql.user to diaosi@'172.16.1.%' identified by '123';

# 单列授权,企业中叫做脱敏,脱敏:脱离敏感信息

6.在企业里一般我们怎么给权限

#开发要一个用户登录数据库

1.跟开发沟通:

1)你要操作的是哪个库哪个表

2)你要对这个表进行哪些操作

3)你从哪个IP连过来

4)你对用户名的要求

5)你对密码有什么要求

6)你的用户要用多久

7)发邮件

2.一般怎么授权

grant select,insert,update on mysql.* to dev@'172.16.1.51' identified by 'Dev@123456';

3.开发要root用户怎么办?

7.授权总结

1.不同级别授权,权限是相加关系

2.不推荐在多级别定义重复的权限

3.常见的授权方式是单库授权

grant select,insert,update on mysql.* to dev@'172.16.1.51' identified by 'Dev@123456';

4.如果涉及到用户的敏感信息,可以使用脱敏,单列授权

5.查看用户的权限

mysql> show grants for root@'172.16.1.%';

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值