首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql库里有关权限的表

MySQL中的权限系统是通过一系列的表来实现的,这些表存储在mysql数据库中。以下是与权限相关的几个主要表及其作用:

  1. user表
    • 存储了所有MySQL用户账号的信息。
    • 包括用户名、密码(加密存储)、主机名等。
    • 示例:SELECT User, Host FROM mysql.user;
  • db表
    • 存储了数据库级别的权限信息。
    • 包括哪些用户可以访问哪些数据库,以及他们的权限(如SELECT、INSERT、UPDATE等)。
    • 示例:SELECT User, Host, Db FROM mysql.db WHERE Db = 'your_database_name';
  • tables_priv表
    • 存储了表级别的权限信息。
    • 包括哪些用户可以访问哪些表的哪些操作。
    • 示例:SELECT User, Host, Db, Table_name, Table_priv FROM mysql.tables_priv WHERE Db = 'your_database_name';
  • columns_priv表
    • 存储了列级别的权限信息。
    • 包括哪些用户可以访问哪些表的哪些列以及对应的操作。
    • 示例:SELECT User, Host, Db, Table_name, Column_name, Column_priv FROM mysql.columns_priv WHERE Db = 'your_database_name';
  • procs_priv表
    • 存储了存储过程和函数的权限信息。
    • 包括哪些用户可以执行哪些存储过程和函数。
    • 示例:SELECT User, Host, Db, Routine_name, Routine_type, Proc_priv FROM mysql.procs_priv;

优势

  • 细粒度权限控制:MySQL提供了从全局到数据库、表、列甚至存储过程和函数的细粒度权限控制。
  • 灵活性:可以根据需要为不同的用户或用户组分配不同的权限。
  • 安全性:通过权限控制,可以有效防止未授权访问和数据泄露。

应用场景

  • 多用户环境:在多用户共享数据库的环境中,权限控制是必不可少的,以确保数据的安全性和完整性。
  • 开发与生产环境分离:在开发和生产环境中,可能需要不同的权限设置,以保护生产数据不被误操作。

常见问题及解决方法

  1. 权限不足
    • 原因:用户没有被授予执行特定操作的权限。
    • 解决方法:使用GRANT语句为用户授予相应的权限。
    • 解决方法:使用GRANT语句为用户授予相应的权限。
  • 权限更改未生效
    • 原因:权限更改后需要刷新权限才能生效。
    • 解决方法:执行FLUSH PRIVILEGES;命令刷新权限。
  • 无法创建新用户
    • 原因:当前用户可能没有足够的权限来创建新用户。
    • 解决方法:使用具有足够权限的用户(如root)来创建新用户。
    • 解决方法:使用具有足够权限的用户(如root)来创建新用户。

参考链接

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL权限表_mysql可以授予列增删改权限

大家好,又见面了,我是你们的朋友全栈君。 一、权限系统概述 安装MySQL时自动安装一个名为mysql的数据库。mysql数据库下面存储的都是权限表。...用户登录以后,MySQL数据库系统会根据这些权限表的内容为每个用户赋予相应的权限。...在MySQL数据库系统中,权限分配是按照user表>db表>table_pric表>columns_priv表的顺序来分配的。...二、MySQL访问权限系统工作原理 1、功能:MySQL权限系统的主要功能是证实连接到一台给定主机的用户,并且赋予该用户在数据库上的SELECT、INSERT、UPDATE和DELETE权限。...2、原理   当你连接MySQL数据库时,你的身份由你从那儿连接的主机和你指定的用户名来决定,连接后发出请求,系统根据你的身份和你想做什么来授予权限。   user表用户列是否允许或拒绝到来的连接。

3K20

用户、角色、权限表的关系(mysql)

name` varchar(20) NOT NULL, `description` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) 3、权限表...fk_user_role_t_user_1` FOREIGN KEY (`user_id`) REFERENCES `t_user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) 5、角色权限关系表...u1′,’1’), (‘2′,’u2′,’2’), (‘3′,’u3′,’3’), (‘4′,’u11′,’1’), (‘5′,’u22′,’2’), (‘6′,’u33′,’3’); 小说网站,用户表的设计...(方便后面对应英文单词直观反应着关系,如看到reader就是表示读者角色) 角色和权限的关系是多对多关系。即一个角色有着多种权限,同样,一个权限可以分给不同角色。...这里用户和角色是一对一关系,通过先查询用户的角色,再查询权限。(单行单例子查询) SELECT p.

5.7K20
  • 权限表的设计

    当用户量非常多的时候,逐一的给用户授权角色是一件很痛苦的事情,于是引出组的概念。用户拥有的所有权限,就是用户个人拥有的权限与该用户所在用户组拥有的权限之和。 ?...OK,用户到角色的好理解,接下来看权限 权限表现成什么?对功能模块的操作,对上传文件的删改,菜单的访问,甚至页面上某个按钮、某个图片的可见性控制,都可属于权限的范畴。...权限表与权限菜单关联表、权限菜单关联表与菜单表都是一对一的关系。(文件、页面权限点、功能操作等同理)。也就是每添加一个菜单,就得同时往这三个表中各插入一条记录。...这样,可以不需要权限菜单关联表,让权限表与菜单表直接关联,此时,须在权限表中新增一列用来保存菜单的ID,权限表通过“权限类型”和这个ID来区分是种类型下的哪条记录。 权限表和功能操作表多对多的关系。...请留意权限表中有一列“权限类型”,我们根据它的取值来区分是哪一类权限,如“MENU”表示菜单的访问权限、“OPERATION”表示功能模块的操作权限、“FILE”表示文件的修改权限、“ELEMENT”表示页面元素的可见性控制等

    3.1K30

    zblog批量删除mysql数据库里的垃圾评论

    好家伙,因为啥呀这是,给我这么大的礼物,不过我消受不起啊,看着后台的评论数量我脑袋都疼,咋删啊。。。 ?...`评论数据表名` WHERE `comm_ID` = 550 因为数据库备份了,所以简单的又查下百度,最终的代码如下(zblog可以直接拿去使用): DELETE... FROM `zbp_comment` WHERE `comm_ID` = 2491 如上所示,zbp_comment是数据库的表名,comm_ID是你要删除的评论列表的...成功的删除了16463条垃圾评论。最后感谢尔今大神的帮助,谢谢!...你可能会说,为什么评论总数是16516成功删除的却只有16463,很简单的,当初看到评论的时候没想到有辣么多,所以手动删除了一些,这个倒是不要紧,只要你设置的ID值对,就没有什么问题,切忌操作前需要备份数据库

    2.9K20

    权限系统表 | 全方位认识 mysql 系统库(一)

    一文中其实已经介绍过mysql 系统库的帮助信息表了。在接下来的系列文章中,我们将全面介绍 mysql 系统库。下面,请跟随我们一起开始mysql 系统库 的学习之旅吧。...MySQL 访问权限系统表包含如下几张表: user:包含用户帐户和全局权限和其他非权限列表(安全配置选项和资源控制选项列) db:数据库级别的权限表 tables_priv:表级别的权限表 columns_priv...等)来间接修改,不建议直接使用DML语句修改权限表,否则后果自负 以下内容主要针对MySQL 5.7版本进行整理 1、user 该表提供查询全局权限信息,该表中的帐号密码信息在认证1阶段(关于认证阶段相关的内容我们会在下一期进行介绍...到Create_tablespace_priv及其之间的列,官方称为权限列,每一个列对应一个具体的权限,为Y代表有权限,为N代表没权限 以下列官方称为安全列,与客户端与服务端之间的安全、加密通讯有关...表示的帐号权限时的时间戳 4、columns_priv 该表提供查询列级别权限信息, 与db表类似,但粒度更细,columns_priv表中记录的权限信息代表着用户可以使用这些权限来访问某个表的指定列

    97630

    【Linux系统调用API】四、与权限有关的函数

    access函数返回的是无写权限,但是在root用户下使用access函数返回的是有写权限,这是为什么呢?...首先可以看到,文件归属于root用户,并且该文件对归属用户的权限位是 rw- ,有写权限,对其它用户的权限位是 r-- ,无写权限。...现在原因就比较清晰了,access函数在判断权限的时候是判断有效用户的权限,比如说有一个文件对usr1无权限,我们使用access函数获取时确实没有执行权限,但是如果用sudo去执行的话(或者在root...也就是说,access函数是判断一个文件相对于某个用户的权限,而不是说文件本身的权限,access函数返回的是文件对某一用户的权限。...函数参数 path:文件名(路径) mode:文件的权限,可以通过与运算设定多个权限。

    12110

    有关跳跃表的干货都在这里

    跳表的数据结构 跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。...跳表的性质 由很多层结构组成 每一层都是一个有序的链表 最底层(Level 1)的链表包含所有元素 如果一个元素出现在Level i的链表中,则它在Level i之下的链表也都会出现。...每个节点包含两个指针,一个指向同一链表中的下一个元素,一个指向下面一层的元素。 1. 跳表的get操作 ?...跳表的insert操作 先确定该元素要占据的层数 K(采用丢硬币的方式,这完全是随机的) 然后在 Level 1 ... Level K 各个层的链表都插入元素。...代码就不写了,毕竟跳跃表只是个思想,很多细节东西都是因人而异,因业务而异。

    61730

    有关于MySQL的面试题

    补充: 这是一个简单的表设计:(其次展示的是有关于Mysql的SQL语句面试题) ​#问题1:1月每笔消费均大于20元的用户的总消费金额#条件:1月+大于20 sum(order_amt #问题2:1月只吃了麻辣烫和汉堡的人数...>=1,且按部门标号降序排序 首先是有关于文字性的MySQL面试题(概念): 01、用一句话介绍什么是MySQL?...right join 在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录。 04、MySQL数据库和Redis的区别?...视图是一个虚拟的表,是一个表中的数据经过某种筛选后的显示方式,视图由一个预定义的查询select语句组成。为了提高复杂SQL语句的复用性和表操作的安全性,MySQL数据库管理系统提供了视图特性。...:(其次展示的是有关于Mysql的SQL语句面试题) create table t_user(     uid varchar(10) not null comment '用户ID',     order_time

    1.1K30

    有关跳跃表的干货都在这里

    跳表的数据结构 跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。...跳表的性质 由很多层结构组成 每一层都是一个有序的链表 最底层(Level 1)的链表包含所有元素 如果一个元素出现在Level i的链表中,则它在Level i之下的链表也都会出现。...每个节点包含两个指针,一个指向同一链表中的下一个元素,一个指向下面一层的元素。 1. 跳表的get操作 ?...跳表的insert操作 先确定该元素要占据的层数 K(采用丢硬币的方式,这完全是随机的) 然后在 Level 1 ... Level K 各个层的链表都插入元素。...代码就不写了,毕竟跳跃表只是个思想,很多细节东西都是因人而异,因业务而异。 总结 大部分编程语言中的Map类型都是通过红黑树实现的,在写程序的时候,可以直接拿过来用,不用自己再去实现一个红黑树。

    50250

    MYSQL无备份情况下恢复误删除的user权限表

    问题背景 前几天客户反馈,误删除了权限表,导致无法连接到实例中了,但是又没有备份,咨询要怎么去恢复; 针对上述的这种情况,下面给出具体的恢复方法; (备份重于一切!备份重于一切!...重要的事情说三遍) 环境说明: MYSQL 5.7版本 端口:3306和3309 说明:3309是故障的实例,3306是协助在没有备份的情况下做恢复 下面开始故障模拟和恢复: 1、查看一下目前user表中存在的用户...:误删除了user表,进程被杀掉了,mysql服务处理停机状态,那么重启实例,肯定会报错(后面可以看到) 第一种情况:MYSQL服务进程是启动的 恢复方法: 从其他的运行好的数据库或官方文档找到mysql5.7...(也就是上述环境中3306端口的实例)中,将数据库文件下的user表的物理文件拷贝到故障实例的数据文件目录下,(5.7版本user表是myisam引擎,会存在三个物理文件) [root@VM_54_118...ON 但是可以发现,恢复成功后的user表是您拷贝实例(也就是3306端口实例)的user表哦。。。

    2.1K31

    MySQL用户权限的手册

    ,UPDATE……等,如果要授予所的权限则使用ALL databasename:数据库名 tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如 *.* 举例: //对于...test数据库下的user表,存查询、新增权限 GRANT SELECT, INSERT ON test.user TO 'root'@'%'; //所有库,所有表具备所有权限 GRANT ALL ON...*.* TO 'root'@'%'; //只对test数据库下的所有表,具备所有权限 GRANT ALL ON test.* TO 'root'@'%'; 5、刷新权限 命令: flush privileges...FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON ....TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select权限。

    5K10

    【MySql】表的约束

    表中一定要有各种约束,通过约束,让我们未来插入数据库表中的数据是符合预期的。约束的本质是通过技术收到逼迫程序员插入正确的数据,反过来,站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。...站在正常的业务逻辑中: 如果班级没有名字,你不知道你在哪个班级 如果教室名字可以为空,就不知道在哪上课 所以我们在设计数据库表的时候,一定要在表中进行限制,满足上面条件的数据就不能插入到表中。...一个主键可以被添加到一列,或者多列上 主键;主键所在的列通常是整数类型 创建表的时候直接在字段上指定主键 mysql> create table if not exists test_key (...对于自增长:默认是从1开始插入的,如果默认插入了一个值作为起始值,则从这个起始值加1开始 所以我们在创建表的时候可以给自增长设置一个起始值: mysql> create table t22( -...建立外键的本质其实就是把相关性交给mysql去审核了,提前告诉mysql表之间的约束关系,那么当用户插入不符合业务逻辑的数据的时候,mysql不允许你插入。

    21630

    MySQL表的操作

    collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准 2、创建表的案例 create table users ( id int, name varchar(20) comment...MyISAM; 3、查看表结构 desc 表名 示例: 4、修改表 在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。...案例: 4.1.在users表中添加两条记录 mysql> insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01- 04...'); 4.2.在users表添加一个字段,用于保存图片路径 mysql> alter table users add assets varchar(100) comment '图片路径' after...(100) | YES | | NULL | | +----------+--------------+------+-----+---------+-------+ 插入新字段后,对原来表中的数据没有影响

    5710

    MySQL表与表之间的关系

    表与表之间的关系 表1 foreign key 表2 则表1的多条记录对应表2的一条记录,即多对一 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表...2的一条记录 表2的多条记录也可以对应表1的一条记录 一对一: 表1的一条记录唯一对应表2的一条记录,反之亦然 分析时,我们先从按照上面的基本原理去套,然后再翻译成真实的意义,就很好理解了...1、先确定关系 2、找到多的一方,把关联字段写在多的一方 一对多  多对一或者一对多(左边表的多条记录对应右边表的唯一一条记录)  需要注意的: 1.先建被关联的表,保证被关联表的字段必须唯一。...图片 创建表 书要关联出版社 被关联的表 create table press(id int primary key auto_increment, name char(20)); 关联的表 create...add primary  key(id,avg) 多对多:一个作者可以写多本书,一本书也可以有多个作者,双向的一对多,即多对 关联方式:foreign key+一张新的表 示例: 图片 图片 创建表 =

    3.6K10

    MySQL的表操作

    #前言:我们说过,库相当于一个文件夹,表相当于文件夹里的一个个文件,表里面的一条记录相当于一行内容,表中的一条记录有对应的标题,称为表的字段 #直观表 ?...#id,name,sex,age为表的字段,其余一行内容称为一条记录 1.建表 #创建表语法格式 Create table 表名> ( , ….....:   create table 表示创建表的固定关键字,student为表名,有四个字段,分别表示   id:学号列, int:数字类型, 4:长度为4, not null:不为空值...字节 极大文本数据 #创建表的时候指定存储引擎 mysql> create table test ( -> id int(4) not null auto_increment,...#语法格式:drop table 表名> #例子:删除db库里面的student表 mysql> use db; Database changed mysql> show tables; #查看库中的表

    4.7K40

    【MYSQL】表的约束

    索引: 在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结 构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。...索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。 索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。...这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息 七、唯一键 一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键就可以解决表中有多个字段需要唯一性约束的问题...当定义外键后,要求外键列数据必须在主表的主键列存在或为null 关键词:foreign key (字段名) references 主表(列) 案例: 我们可以看到,学生信息是和班级表有关系的:某个班还有学生的时候我们不能直接删除这个班的数据...;插入的学生班级号不能在班级表中没有。

    25340

    MySQL:表的约束

    表的约束和约束的目标 表的约束:表中一定要有各种约束,通过约束,让我们未来插入数据库中的数据是符合预期的。约束本质是通过技术手段,倒逼程序员,插入正确的数据。...反过来,站在MySQL角度,凡是插入进来的数据,都是符合数据约束的! 约束的最终目标:保证数据的完整性和可预期性。 二....而如果为我们没有在创建表的时候显示声明默认值,MySQL会优化,自动加上默认值为NULL。 四....zerofill 对数字类型后面的长度很迷茫,对于下面这个表: mysql> show create table tt3\G ***************** 1. row ************...这样插入一个并不属于class表的班级编号的时候,就会报错。 并且如果从表中对应的还有数据,是不能在主表中删除的。

    6710
    领券