权限表

一、介绍

①MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在MySQL数据库中,由mysql_install_db脚本初始化。
②存储账户权限信息表主要有:user、db、host、tables_priv 、columns _priv 、procs_priv;

二、user表

1、作用:记录允许连接到服务器的账号信息,里面的权限是全局性
  实例:一个用户在user表中授予DELETE权限,则该用户可以删除MySQL服务器上的所有数据库的任何记录。

2、介绍:user表中的字段可以分为4类,分别是用用户列、权限列、安全列和资源控制列;

3、表结构

字段名

数据类型

默认值

字段名

数据类型

默认值

Host

char(60)

Execute_priv

enum(‘N’,’Y’)

N

User

char(16)

Repl_slave_priv

enum(‘N’,’Y’)

N

Password

char(41)

Repl_client_priv

enum(‘N’,’Y’)

N

Select_priv

enum(‘N’,’Y’)

N

Create_view_priv

enum(‘N’,’Y’)

N

Insert_priv

enum(‘N’,’Y’)

N

Show_view_priv

enum(‘N’,’Y’)

N

Update_priv

enum(‘N’,’Y’)

N

Create_routine_priv

enum(‘N’,’Y’)

N

Delete_priv

enum(‘N’,’Y’)

N

Alter_routine_priv

enum(‘N’,’Y’)

N

Create_priv

enum(‘N’,’Y’)

N

Create_user_priv

enum(‘N’,’Y’)

N

Drop_priv

enum(‘N’,’Y’)

N

Event_priv

enum(‘N’,’Y’)

N

Reload_priv

enum(‘N’,’Y’)

N

Trigger_priv

enum(‘N’,’Y’)

N

Shutdown_priv

enum(‘N’,’Y’)

N

Create_tablespace_priv

enum(‘N’,’Y’)

N

Process_priv

enum(‘N’,’Y’)

N

ssl_type

enum(“,’ANY’,’X509’,

’SPECIFIED’)

N

File_priv

enum(‘N’,’Y’)

N

ssl_cipher

blob

NULL

Grant_priv

enum(‘N’,’Y’)

N

X509_issuer

blob

NULL

References_priv

enum(‘N’,’Y’)

N

X509_subject

blob

NULL

Index_priv

enum(‘N’,’Y’)

N

max_questions

int(11)unsigned

0

Alter_priv

enum(‘N’,’Y’)

N

max_updates

int(11)unsigned

0

Show_db_priv

enum(‘N’,’Y’)

N

max_connections

int(11)unsigned

0

Super_priv

enum(‘N’,’Y’)

N

max_user_connections

int(11)unsigned

0

Create_tmp_table_priv

enum(‘N’,’Y’)

N

plugin

char(64)

Lock_tables_priv

enum(‘N’,’Y’)

N

authentication_string

text

NULL

介绍:

Select_priv:确定用户是否可以通过SELECT命令选择数据。
Insert_priv:确定用户是否可以通过INSERT命令插入数据。
Update_priv:确定用户是否可以通过UPDATE命令修改现有数据。
Delete_priv:确定用户是否可以通过DELETE命令删除现有数据。
Create_priv:确定用户是否可以创建新的数据库和表。
Drop_priv:确定用户是否可以删除现有数据库和表。
Reload_priv:确定用户是否可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包 日志、权限、主机、查询和表。
Shutdown_priv:确定用户是否可以关闭MySQL服务器。在将此权限提供给root账户之外的任何 用户时,都应当非常谨慎。
Process_priv:确定用户是否可以通过SHOW PROCESSLIST命令查看其他用户的进程。
File_priv:确定用户是否可以执行SELECT INTO OUTFILE和LOAD DATA INFILE命令。
Grant_priv:确定用户是否可以将已经授予给该用户自己的权限再授予其他用户。例如,如果用 户可以插入、选择和删除foo数据库中的信息,并且授予了GRANT权限,则该用户 就可以将其任何或全部权限授予系统中的任何其他用户。
References_priv:目前只是某些未来功能的占位符;现在没有作用。
Index_priv:确定用户是否可以创建和删除表索引。
Alter_priv:确定用户是否可以重命名和修改表结构。
Show_db_priv:确定用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限 的数据库。可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因。
Super_priv:确定用户是否可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使 用SET GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令。
Create_tmp_table_priv:确定用户是否可以创建临时表。
Lock_tables_priv:确定用户是否可以使用LOCK TABLES命令阻止对表的访问/修改。
Execute_priv:确定用户是否可以执行存储过程。此权限只在MySQL .0及更高版本中有意义。
Repl_slave_priv:确定用户是否可以读取用于维护复制数据库环境的二进制日志文件。此用户位 于主系统中,有利于主机和客户机之间的通信。
Repl_client_priv:确定用户是否可以确定复制从服务器和主服务器的位置。
Create_view_priv:确定用户是否可以创建视图。此权限只在MySQL .0及更高版本中有意义。关 于视图的更多信息,
Show_view_priv:确定用户是否可以查看视图或了解视图如何执行。此权限只在MySQL .0及更 高版本中有意义。关于视图的更多信息,参见第34章。
Create_routine_priv:确定用户是否可以更改或放弃存储过程和函数。此权限是在MySQL .0中引 入的。
Alter_routine_priv:确定用户是否可以修改或删除存储函数及函数。此权限是在MySQL .0中引 入的。
Create_user_priv:确定用户是否可以执行CREATE USER命令,这个命令用于创建新的MySQL账户。
Event_priv:确定用户能否创建、修改和删除事件。。
Trigger_priv:确定用户能否创建和删除触发器。

4、用户列

  包括Host、User、Password,分别表示主机名、用户名和密码。其中User和Host为User 表的联合主键。当用户与服务器之间建立连接时,输入的账户信息中的用户名称、主机名称和密码必须匹配User表中对应的字段,只有3个值都匹配的时候,才允许连接的建立。这三个字段的值就是创建账户时保存的账户信息。修改密码。其实质就是修改User表中Password字段的值

5、权限列

权限列决定了用户的权限,描述了在全局范围内允许对数据和数据库进行的操作。包括查询权限、修改权限等普通权限,还包括了关闭服务器、超级权限和加载用户等高级权限。普通权限用于操作数据库;高级权限用于数据库管理User表中对应的权限是针对所有用户数据库的。这些字段值的类型为ENUM,可以取值的只有“Y” 和“N”;“Y”表示有权限;“N”表示没有权限

6、安全列

  安全例只有6个字段,其中两个是ssl相关的,2个是x509相关的,另外两个是授权相关的。ssl 用于加密;x509标准可用于标识用户;Plugin字段标识可以用于验证用户身份的插件,如果该字 段为空,服务器使用内建授权验证机制验证用户身份。可以使用语句show variables like ‘have_openssl’语句查询服务器是否支持ssl功能

7、资源控制列

资源控制列的字段用来限制用户使用的资源,包含4个字段,分别为:

max_questions:用户每小时允许执行的查询操作次数
max_updates:用户每小时允许执行的更新操作次数
max_connections:用户每小时允许执行的连接操作次数
max_user_connections:用户允许同时建立的连接次数

一个小时内用户查询或者连接数量超过资源控制限制,用户将被锁定,直到下一小时,才可以执 行对应的操作
三、db表和host表
1、介绍

db表中存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库。
host表中存储了某个主机对数据库的操作权限;
这个权限表不受CRANT和REVOKE语句的影响;
两者的表结构相似,字段可以分为两类:用户列和权限列

2、表结构

(1)db表

字段名

数据类型

默认值

字段名

数据类型

默认值

Host

char(60)

Index_priv

enum('N','Y')

N

Db

char(64)

Alter_priv

enum('N','Y')

N

User

char(32)

Create_tmp_table_priv

enum('N','Y')

N

Select_priv

enum('N','Y')

N

Lock_tables_priv

enum('N','Y')

N

Insert_priv

enum('N','Y')

N

Create_view_priv

enum('N','Y')

N

Update_priv

enum('N','Y')

N

Show_view_priv

enum('N','Y')

N

Delete_priv

enum('N','Y')

N

Create_routine_priv

enum('N','Y')

N

Create_priv

enum('N','Y')

N

Alter_routine_priv

enum('N','Y')

N

Drop_priv

enum('N','Y')

N

Execute_priv

enum('N','Y')

N

Grant_priv

enum('N','Y')

N

Event_priv

enum('N','Y')

N

References_priv

enum('N','Y')

N

Trigger_priv

enum('N','Y')

N

(2)host表
3、用户列

(1)db表用户列有三个字段,分别是Host、User、Db,标识从某个主机连接某个用户对某个数据    库的操作权限,这三个字段的组合构成了db表的主键;
(2)host表不存储用户名称,用户列只有两个,分别是Host和Db,表示从某个主机连接的用户    对某个数据库的操作权限,其主键包括Host和Db两个字段;
4、权限列

db表和host的表的权限大致相同,其中create_routine_priv和alter_routine_priv表示用户是否有 创建和修改存储过程的权限。
user表中的权限是针对所有数据库的,而db表和host表是针对单个数据库

四、table_priv表和columns_priv表
1、作用
  table_priv表:用来对表设置操作权限
  columns_priv表:用来对表的某一列设置操作权限
2、表结构

(1)table_priv表结构

字段名

数据类型

默认值

Host

char(60)

Db

char(64)

User

char(32)

Table_name

char(64)

Grantor

char(93)

Timestamp

timestamp

CURRENT_TIMESTAMP

Table_priv

set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger'

Column_priv

set('Select','Insert','Update','References')

(2)columns_priv表结构

字段名

数据类型

默认值

Host

char(60)

Db

char(64)

User

char(32)

Table_name

char(64)

Column_name

char(64)

Timestamp

timestamp

CURRENT_TIMESTAMP

Column_priv

set('Select','Insert','Update','References')

3、介绍
  (1)table_priv表

①Host、Db、User和Table_name分别表示主机名、数据库名、用户名和表名
②Grantor表示修改该记录的用户
③Timestamp表示修改该记录的时间
④Table_priv表示对表的操作权限
⑤Column_priv表示对表的列的操作权限

(2)columns_priv表

Column_name用来指定对那些数据列具有操作权限

五、procs_priv表

1、作用:可以对存储过程和存储函数设置操作权限

2、表结构

字段名

数据类型

默认值

Host

char(60)

Db

char(64)

User

char(32)

Routine_name

char(64)

Routine_type

enum('FUNCTION','PROCEDURE')

NULL

Grantor

char(93)

Proc_priv

set('Execute','Alter Routine','Grant')

Timestamp

timestamp

CURRENT_TIMESTAMP

MySq:权限表的更多相关文章

  1. 【Java EE 学习 75 下】【数据采集系统第七天】【二进制运算实现权限管理】【使用反射初始化权限表】【权限捕获拦截器动态添加权限】

    一.使用反射动态添加权限 在该系统中,我使用struts2的时候非常规范,访问的Action的形式都是"ActionClassName_MethodName.action?参数列表" ...

  2. MYSQL权限表user操作

        MYSQL权限表user cmd中进人mysql找到mysql安装目录     E:\wamp\bin\mysql\mysql5.6.12\bin>mysql.exe -u 用户名  - ...

  3. 【MySQL学习笔记】MySQL权限表

    MySQL权限表,控制用户对数据库的访问,存在mysql数据库中,由mysql_install_db初始化,包括user,db,host,tables_priv,columns_priv,procs_ ...

  4. MySQL服务器权限表

    MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由mysql_install_db脚本初始化.这些权限表分别user,db,table_priv,columns_p ...

  5. MySQL 用户管理——权限表

    权限表 权限表存放在mysql数据库中 user表结构 用户列:Host.User.Password 权限列:*priv 资源控制列:max* 安全列:其余   db表 存储了用户对某个数据库的操作权 ...

  6. mysql 开发进阶篇系列 52 权限与安全(系统四个权限表的粒度控制关系)

    一.概述 接着上篇的权限介绍,当用户进行连接的时候,权限表的存取过程有以下两个阶段: (1) 先从user表中的host,user, authentication_string 这3个字段中判断连接的 ...

  7. mysql 开发进阶篇系列 51 权限与安全(权限表user,db详细介绍 )

    一.概述 mysql 的权限系统主要用来对连接到数据库的用户进行权限验证,以此来判断此用户是否属于合法用户,以及合法用户给予的相应数据库权限.下面将介绍权限系统的工作原理,以及将要熟练掌握账号的管理和 ...

  8. MySQL(介绍,安装,密码操作,权限表)

    一.数据库介绍1.数据库相关概念 a.支持并发     b.锁的问题     c.对客户端请求进行认证     d.存取效率(降低IO次数)    数据库服务器(本质就是一个台计算机,该计算机之上安装 ...

  9. java访问权限表

    private(私有的) 默认的(什么都不写) protected(受保护的) public(公共的 ) 同一个类中 yes   yes yes   yes 同一个包中不同类之间 no yes yes ...

随机推荐

  1. 『计算机视觉』各种Normalization层辨析

    『教程』Batch Normalization 层介绍 知乎:详解深度学习中的Normalization,BN/LN/WN 一.两个概念 独立同分布(independent and identical ...

  2. 『MXNet』第七弹_多GPU并行程序设计

    资料原文 一.概述思路 假设一台机器上有个GPU.给定需要训练的模型,每个GPU将分别独立维护一份完整的模型参数. 在模型训练的任意一次迭代中,给定一个小批量,我们将该批量中的样本划分成份并分给每个G ...

  3. 2017-5-5/PHP实现负载均衡的加权轮询

    1. 负载均衡算法有哪些? 轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载. 随机法:通过系统的随机算法,根据后端服务器的列表 ...

  4. docker实战系列之搭建rabbitmq

    1.搜索镜像[注:因为我这里采用的是阿里云镜像加速器,所以我直接在阿里云中搜索相关镜像路径],点击"详情"查看公网拉取路径 2.拉取镜像 docker pull registry. ...

  5. Oracle12c中容错&性能新特性之表空间组

    1.        简介 表空间组可以使用户消耗来自多个表空间的临时表空间.表空间组有如下特点: 1)      至少包含一个表空间.表空间组中包含的最大表空间数没有限制. 2)      和表空间共 ...

  6. MySQL自带功能介绍

    前言: 数据库相关的操作 1.SQL语句 *****(MySql(一)已经介绍): 2.利用mysql内部提供的功能(视图.触发器.函数.存储过程: 一.视图: 把经常使用的查询结果,做成临时视图表, ...

  7. ActiveMQ 处理不同类型的消息

    ActiveMQ 中的消息都继承自 org.apache.activemq.command.BaseCommand 类. broker 处理消息的调用栈如下: TransportConnection ...

  8. cin.get()函数使用例子

    #include <iostream>using namespace std; int k = 0; int main(){ char a[1000]; char c; do { cin. ...

  9. Spring事务的开启方式

    1.通过注解方式@Transactional @Transactional(rollbackForClassName = { "Exception", "RuntimeE ...

  10. shell IF分支判断语句

    单分支IF条件语句 if [ 条件判断式 ] then  程序: fi //结束的时候if反过来写 fi ----------------------------- /** * if test -d ...