1、权限表

存储用户权限信息表主要有:user、db、host、tables_priv、columns_priv、procs_priv。

1》user表:

记录允许连接到服务器的账号信息,里面的权限是全局级别的。user表有42个字段,这些字段可以分为4类,分别是用户列、权限列、安全列、资源控制列。

2》db和host表

3》tables_priv和columns_priv表

4》procs_priv表

2、账户管理

1》登录和登出MySQL

mysql [-h localhost] -uroot -p12345 -P端口号,默认3306 -e命令或SQL语句

 2》新建普通用户

1>create user或grant语句:

//create user ...
create user user_specification[,user_specification] ... user_specification:
user@host
[
identified by [password] 'password'
|identified with auth_plugin [as 'auth_string']
] user:表示创建的用户名称
host:表示允许登录的用户主机名
identified by:表示用来设置用户的密码。与identitied with互斥。
[password]:表示使用hash值设置密码
'password':表示登录时使用的普通明文密码
identified with:为用户指定一个身份验证插件。与identified by互斥。
auth_plugin:插件的名称
auth_string:该参数传值给身份验证插件,由该插件解析该参数的意义
举例:create user 'lfy'@'localhost'  identified by '';
或者
     create user 'lfy'@'localhost';
//grant语句不仅可以创建用户,还可以在创建用户的同时授权
grant privileges on db.table
to user@host [identified by 'password'] [,user [identified by 'password']]
[with grant option]; privileges:表示赋予用户的权限类型
db.table:表示用户的权限所作用的数据库中的表
identified by:设置的密码
[with grant option]:表示对新建立的用户赋予grant权限,即该用户可以对其他用户赋予权限。
grant select,update on *.*
to 'lfy'@'localhost' identified by ''; user、host字段区分大小写。查询的时候需要指定正确的值。

2>直接操作MySQL授权表:

insert into MySQL.user(user,host,password,[privilegelist]) values(...)

3》删除普通用户,2种方式。

1>drop user语句

drop user user1 [,user2];

2>delete删除用户

delete from MySQL.user where host='hostname' and user='username';

4》root用户修改自己的密码

1>mysqladmin命令

mysqladmin -u username -h localhost -p password 'newpwd';

2>修改MySQL.user表

update MySQL.user set password=password("rootpwd") where user="root" and host="localhost"; 

执行完上面的语句修改密码后,还需要执行:
mysql>FLUSH PRIVILEGES; //重新加载权限

3>使用set语句修改root用户的密码

//可以修改别的用户的密码,也可以修改自己的密码
mysql>set password=password("rootpwd"); mysql>FLUSH PRIVILEGES;

5》root用户修改普通用户的密码:set数据库的MySQL.user表,或者grant语句

1>使用set语句修改普通用户的密码

set password for 'user'@'host' = password('somepassword');

//普通用户更改自己的密码
set password=password('somepassword');

2>使用update语句修改普通用户的密码

update MySQL.user set password=password('pwd')
where user='username' and host='hostname'; PLUSH PRIVILEGES;

3>使用grant语句修改普通用户密码

grant urant on *.* to 'user'@'%' identified by 'somepassword';

//全局界别使用grant usage语句(*.*)指定某个账户的密码而不影响账户当前的权限。

使用grant ... identified by语句或者MySQLadmin password命令设置密码,它们俊辉加密密码。这种情况下,
不需要使用password()函数

6》普通用户修改密码

set password = password('pwd');

7》root用户密码丢失

1>使用--skip-grant-tables选项启动MySQL服务

使用使用--skip-grant-tables选项启动MySQL服务,MySQL数据库服务器将不加载权限判断,任何用户都能访问数据库。Windows操作系统中,可以使用MySQLLd或MySQLLd-nt来启动MySQL服务进程。

mysqld --skip-grant-tables
或者
mysqld-nt --skip-grant-tables

2>使用root用户登录,重新设置密码。

3、权限管理

1》MySQL的各种权限

2》授权

1>全局层级:全局权限适用于一个给定服务器中的所有数据库。这些权限存储在MySQL.user表中。grant all on *.*和revoke all on *.*只授予和撤销全局权限。

2>数据库层级

数据库权限适用于一个给定数据库中的所有目标。这些权限存储在MySQL.db和MySQL.host表中。grant all on db_name.和revoke all on db_name.*只授予和撤销数据库权限。

3>表层级

表权限适用于一个给定表中的所有列。

4>列层级

列权限适用于一个给定表中的单一列。

5>子程序层级

3》收回权限

revoke ...

4》查看权限

mysql> show grants for 'mysql'@'localhost';
+----------------------------------------------------------------------+
| Grants for mysql@localhost |
+----------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'localhost' WITH GRANT OPTION |
+----------------------------------------------------------------------+
1 row in set (0.00 sec) mysql>

4、访问控制

1》连接核实阶段

通过Host、user、password几个字段核实用户的连接请求。不能通过,则拒绝访问数据库服务器。

2》请求核实阶段

对于通过连接的会话,对于此链接上的每个请求,服务器检查用户要执行的操作,然后检查是否有足够的权限来执行它。

MySQL-快速入门(11)用户管理的更多相关文章

  1. MySql基础笔记(一)Mysql快速入门

    Mysql快速入门 一)基本概念 1)表 行被称为记录,是组织数据的单位.列被称为字段,每一列表示记录的一个属性. 2)主键 主键用于唯一的标识表中的每一条记录.可以定义表中的一列或者多列为主键, 但 ...

  2. MySQL 快速入门教程

    转:MySQL快速 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据 ...

  3. MySQL快速入门(二)

    目录 MySQL快速入门(二) 约束条件 自增 自增的特性 主键 外键 级联更新/删除 表与表之间的关系 外键约束 操作表方法 查询关键字 练习数据 select··from where 筛选 gro ...

  4. MySQL 快速入门(一)

    目录 MySQL快速入门 简介 存储数据的演变过程 数据库分类 概念介绍 MySQL安装 MySQL命令初始 环境变量配置 MySQL环境变量配置 修改配置文件 设置新密码 忘记密码的情况 基本sql ...

  5. Mysql快速入门(三)

    MySQL性能优化之查看执行计划explain 介绍: (1).MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发 ...

  6. Linux快速入门03-系统管理

    这部分将涉及常用的各类linux命令和一些系统高级管理特性,尤其是shell script的创建,这部分在系统自动化运维时会很有作用. Linux系列文章 快速入门系列--Linux--01基础概念 ...

  7. elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)

    一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 ...

  8. mysql安装使用--2 用户管理

    1 修改mysql.user表 添加用户 mysql> INSERT INTO mysql.user (Host,User,Password) VALUES (\'%\',\'system\', ...

  9. 阿里云RDS for MySQL 快速入门——笔记

    1初始化配置 1.1设置白名单 创建RDS实例后,需要设置RDS实例的白名单,以允许外部设备访问该RDS实例.默认的白名单只包含默认IP地址127.0.0.1,表示任何设备均无法访问该RDS实例. 设 ...

  10. Linux快速入门教程-进程管理ipcs命令学习

    使用Linux系统必备的技能之一就是Linux进程管理,系统运行的过程正是无数进程在运行的过程.这些进程的运行需要占用系统的内存等资源,做好系统进程的管理,对于我们合理分配.使用系统资源有非常大的意义 ...

随机推荐

  1. hashmap分解大法--tableSizeFor方法

    tableSizeFor方法 /** * 根据容量参数,返回一个2的n次幂的table长度. */ private static final int tableSizeFor(int c) { int ...

  2. 查看是否安装jdk及路径

    JDK能否曾经装置,可以在cmd窗口里输出java -version,假定没有提示出错,就表示曾经装置. JDK的装置途径,可以输出java -verbose,会前往很多信息,其中就包括了JDK的装置 ...

  3. nmon监控使用

    1.上传nmon_linux_x86_64文件到服务器 2.修改文件权限chmod 775 nmon_linux_x86_64 3.压测时需要执行以下命令监控服务器./nmon_linux_x86_6 ...

  4. vue - 登录验证与权限控制

    描述具体问题 需求 业务系统通常需要登录才能访问受限资源,在用户未登录情况下访问受限资源需要重定向到登录页面: 多个业务系统之间要实现单点登录,即在一个系统或应用已登录的情况下,再访问另一个系统时不需 ...

  5. maven 三个仓库表

    https://search.maven.org ,http://www.mvnrepository.com/ http://maven.apache.org

  6. Q15格式表示负小数

    1.用Q15.16-bit格式,表示出-0.5? 解析:其实很简单,Q15是dsp里为了优化浮点的,就是将小数* 2^15. 例如:0.333 * 32768 = 10911.744  取整数就是10 ...

  7. Luogu P5469 [NOI2019]机器人 (DP、多项式)

    不用FFT的多项式(大雾) 题目链接: https://www.luogu.org/problemnew/show/P5469 (这题在洛谷都成绿题了海星) 题解: 首先我们考虑,一个序列位置最右边的 ...

  8. [CSP-S模拟测试]:椎(线段树维护区间最值和单调栈)

    题目描述 虽不能至,心向往之. $Treap=Tree+Heap$ 椎$=$树$+$堆 小$\pi$学习了计算机科学中的数据结构$Treap$. 小$\pi$知道$Treap$指的是一种树. 小$\p ...

  9. 关于vue给对象新增属性页面不会动态更新

    不知道大家有没有遇到过这个问题,当我们给data里边声明或者已经赋值过的对象或者数组,添加新的属性时,如果更新此属性的值是不会动态更新视图的. $set 看以下实例: 我们开始给drug_list追加 ...

  10. @清晰掉 makefile

    参阅: http://www.cnblogs.com/wang_yb/p/3990952.html