系列教程

MySQL系列之开篇 MySQL关系型数据库基础概念
MySQL系列之一 MariaDB-server安装
MySQL系列之二 多实例配置
MySQL系列之三 基础篇
MySQL系列之四 SQL语法
MySQL系列之五 视图、存储函数、存储过程、触发器
MySQL系列之七 MySQL存储引擎
MySQL系列之八 MySQL服务器变量
MySQL系列之九 mysql查询缓存及索引
MySQL系列之十 MySQL事务隔离实现并发控制
MySQL系列之十一 日志记录
MySQL系列之十二 备份与恢复
MySQL系列之十三 MySQL的复制
MySQL系列之十四 MySQL的高可用实现
MySQL系列之十五 MySQL常用配置和性能压力测试

一、用户管理

1、用户账号

用户的账号由用户名和HOST俩部分组成('USERNAME'@'HOST')

HOST的表示:

  • 主机名
  • 具体IP地址
  • 网段/掩码

可以使用通配符表示,%和_;192.168.%即表示这个网段的所有主机

2、增加删除账号

主要:在数据库中修改了用户信息需要执行FLUSH PRIVILEGES;来刷新授权表使其生效

创建

  MariaDB [mysql]> CREATE USER 'user1'@'192.168.%';  MariaDB [mysql]> CREATE USER 'user2'@'192.168.%' IDENTIFIED BY 'your_password';  MariaDB [mysql]> SELECT user,host,password FROM user;  +-------+-----------+-------------------------------------------+  | user  | host      | password                                  |  +-------+-----------+-------------------------------------------+  | root  | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |  | root  | centos7   |                                           |  | root  | 127.0.0.1 |                                           |  | root  | ::1       |                                           |  |       | localhost |                                           |  |       | centos7   |                                           |  | user1 | 192.168.% |                                           |  | user2 | 192.168.% | *9E72259BA9214F692A85B240647C4D95B0F2E08B |  +-------+-----------+-------------------------------------------+
  MariaDB [mysql]> DROP USER user2@'192.168.%';  MariaDB [mysql]> SELECT user,host,password FROM user;        +-------+-----------+-------------------------------------------+  | user  | host      | password                                  |  +-------+-----------+-------------------------------------------+  | root  | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |  | root  | centos7   |                                           |  | root  | 127.0.0.1 |                                           |  | root  | ::1       |                                           |  |       | localhost |                                           |  |       | centos7   |                                           |  | user1 | 192.168.% |                                           |  +-------+-----------+-------------------------------------------+
  MariaDB [mysql]> RENAME USER user1@'192.168.%' TO testuser@'%';  MariaDB [mysql]> SELECT user,host,password FROM mysql.user;  +----------+-----------+-------------------------------------------+  | user     | host      | password                                  |  +----------+-----------+-------------------------------------------+  | root     | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |  | root     | centos7   |                                           |  | root     | 127.0.0.1 |                                           |  | root     | ::1       |                                           |  |          | localhost |                                           |  |          | centos7   |                                           |  | testuser | %         |                                           |  +----------+-----------+-------------------------------------------+
  MariaDB [mysql]> SET PASSWORD FOR testuser@'%' =PASSWORD('testpass');  MariaDB [mysql]> SELECT user,host,password FROM mysql.user;            +----------+-----------+-------------------------------------------+  | user     | host      | password                                  |  +----------+-----------+-------------------------------------------+  | root     | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |  | root     | centos7   |                                           |  | root     | 127.0.0.1 |                                           |  | root     | ::1       |                                           |  |          | localhost |                                           |  |          | centos7   |                                           |  | testuser | %         | *00E247AC5F9AF26AE0194B41E1E769DEE1429A29 |  +----------+-----------+-------------------------------------------+
​ UPDATE user SET password=PASSWORD('testpass') WHERE user='testuser';
  # systemctl stop mariadb  # rm -rf /var/lib/mysql/*  #删库跑路  # systemctl start mariadb

1)在/etc/my.cnf配置文件的[mydqld]下添加skip-grant-tables和skip-networking参数

2)# systemctl restart mariadb 重启服务

3)执行mysql登录到数据库

4)MariaDB [(none)]> UPDATE mysql.user SET password=PASSWORD('newpassword') WHERE user='root' AND host='localhost'; #更新密码

5)MariaDB [(none)]> FLUSH PRIVILEGES; #刷新授权表

6)退出,修改配置文件,删除skip-grant-tables和skip-networking参数,重启服务
也可以在启动mysqld进程时,为其使用如下选项:

--skip-grant-tables

​ --skip-networking

二、授权管理

1、授权

​ 语法:GRANT priv_type ON [object_type] priv_level TO user@'%' [IDENTIFIED BY 'password'] [WITH GRANT OPTION];

授权时如果用户不存在则创建,所以我们一般不会单独去创建一个用户,而是授权创建一块完成。

priv_type 授权类型

- SELECT

- ​INSERT

- ​UPDATE

- ​DELETE

- ​CREATE

- ​DROP

- INDEX

- ALTER

- ​SHOW DATABASES

- ​CREATE TEMPORARY TABLES

- ​LOCK TABLES

- ​CREATE VIEW

- SHOW VIEW

- CREATE USER

- ALL PRIVILEGES 或 ALL

object_type 授权对象

- TABLE

- FUNCTION

- PROCEDURE

priv_level 授权级别

- *或*.* 表示所有库

- db_name.* 表示指定库中的所有表

- db_name.tbl_name 指定库中的指定表

- tbl_name 表示当前库的表

- db_name.routine_name 表示指定库的函数,存储过程,触发器

WITH GRANT OPTION

- MAX_QUERIES_PER_HOUR count

- MAX_UPDATES_PER_HOUR count

- MAX_CONNECTIONS_PER_HOUR count

- MAX_USER_CONNECTIONS count

MariaDB [school]> GRANT SELECT(stuid,name) ON TABLE school.students TO admin@'%' IDENTIFIED BY 'admin';  #把students表的stuid和name字段的查询权限授权于admin@'%'用户MariaDB [school]> FLUSH PRIVILEGES;  #刷新授权表

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Android(安卓)Chromium WebView html js 开发系列
  3. Android(安卓)UI系列 - 布局 - 目录
  4. Windows环境下Android(安卓)Studio系列4—界面介绍
  5. Android(安卓)电源系列小结s
  6. libGDX引擎在android APP开发中应用系列-结合android原生app与lib
  7. android开发专题系列-Android开发指南
  8. Android(安卓)UI系列:关于按钮点击事件
  9. Android之Adapter系列之SimpleAdapter类

随机推荐

  1. Android平台上的计算器APP(付源码)
  2. Android 禁止响应屏幕翻转
  3. 彻底解决Android 应用方法数不能超过65K
  4. 使用intent调用Android系统自带应用
  5. android VideoView播放工程raw下的视频+
  6. TextView属性android:ellipsize实现跑马
  7. JS获取移动端系统信息(操作系统、操作系
  8. android中Http访问时 connection.getResp
  9. 解决OPPO系统在Android10魔改刘海屏的额
  10. android 获取手机电话号码和短信内容