mysql用户权限管理

1.mysql用户的作用

  1)登录mysql数据库

  2)管理数据库对象

2.mysql用户管理

  1)创建用户: #create  user

  2)   删除用户:#delete   user         #drop   user

  3)修改用户: #update

3.用户的定义:

  1)username@‘主机域’

  2)  主机域:可以理解为mysql登录的白名单

  3)  主机域格式: ‘10.0.0.51’   ‘10.0.0.5%’    ‘10.0.0.%’   ‘10.0.%.%’   '10.%.%.%'  '%'    ‘db01’    ‘10.0.0.51/255.255.255.0’

4.用户管理实战

  1)设定初始密码

[root@db02 mysql-5.7.20]# mysqladmin -uroot -p password ‘123’

  2)修改密码

  3)使用密码登录

 [root@db02 mysql-5.7.20]# mysql -uroot -p123

  4)当清理无用用户时:

#关闭数据库

[root@db02 mysql-5.7.20]# /etc/init.d/mysqld stop

#启动数据库

[root@db02 mysql-5.7.20]# mysqld_safe --skip-grant-tables --skip-networking

 

#使用mysql库

 mysql> use mysql

#创建root用户

mysql>  GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY '123' WITH GRANT OPTION;

#忘记root密码

[root@db02 mysql-5.7.20]# /etc/init.d/mysqld stop

#启动数据库

[root@db02 mysql-5.7.20]# mysqld_safe --skip-grant-tables --skip-networking

#修改root用户密码

mysql> update user set password=PASSWORD('123') where user='root' and host='localhost';

2.用户管理机权限管理

#创建用户

mysql> create user oldboy@'10.0.0.%' identified by '123';

 

#查看用户

mysql> select user,host from mysql.user;

#删除用户

mysql> drop user oldboy@‘10.0.0.%’;

 

#修改密码

mysql> update user set password=PASSWORD('oldboy123') where user='root' and host='localhost'; mysql> grant all privileges on *.* to oldboy@’10.0.0.%’ identified by ‘123’;

#用户权限介绍

mysql的权限定义

作用对象:库、表

权限

INSERT,SELECT, 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        all       privileges         on        *.*        to      oldboy@’10.0.0.%’           identified        by ‘123’;

                              权限                     作用对象                    归属                                 密码

作用对象分解

*.* [当前MySQL实例中所有库下的所有表]
wordpress.* [当前MySQL实例中wordpress库中所有表(单库级别)]
wordpress.user [当前MySQL实例中wordpress库中的user表(单表级别)]

1、grant select on *.* to wordpress@’10.0.0.5%’ identified by ‘123’;

2、grant insert,delete,update on wordpress.* to wordpress@’10.0.0.5%’ identified by ‘123’;

3、grant all on wordpress.t1 to wordpress@’10.0.0.5%’ identified by ‘123’;

问:
一个客户端程序使用wordpress用户登陆到10.0.0.51的MySQL后,

1、对t1表的管理能力?

2、对t2表的管理能力?

3、对tb1表的管理能力?

解:

1、同时满足1,2,3,最终权限是1+2+3

2、同时满足了1和2两个授权,最终权限是1+2

3、只满足1授权,所以只能select

结论:

1、如果在不同级别都包含某个表的管理能力时,权限是相加关系。

2、但是我们不推荐在多级别定义重复权限。

3、最常用的权限设定方式是单库级别授权,即:wordpress.*

posted @ 2018-11-26 21:31  只许澎湃不许爱  阅读(244)  评论(0编辑  收藏  举报