Mysql中五级权限小结

mysql的权限控制主要是通过mysql库下的db,user,host,table_priv,column_priv表控制。

由于权限信息数据量比较小,所以mysql在启动时会将所有的权限消息加载到内存。

所以每次手工修改相关权限表时需要通过 flush privileges命令来重新加载。

但是如果是通过grant,revoke或drop user,create user等命令这修改权限的话就不需flush

mysql中权限一共有五级,按照大小顺序为:global > database > table > column, routine level是对存储过程或函数操作的

①, Global Level

全局权限控制,所有权限信息存储在mysql.user表中。Global level是针对整个mysqld的。

grant select,create table on *.* to u1 identified by password;

②, Database Level

作用域为指定整个数据库中的所有对象。

grant select,create table on databaseName.* to u1 identified by password;

user database1;

grant drop on * to ‘u1‘@‘%‘, ‘u1‘@localhost,[email protected]‘%‘;

③,Table Level

作用域为指定特定用户下的特定表

grant index on test.t1 to ‘u1‘@localhost

④, Column Level

作用域为特定库下特定表中的某些列。

Column级别的权限有insert,select,update。授权方式: grant select(c1,c2,c3) on test.t1 to ‘u1‘@localhost;

⑤, Routine Level

routine level的权限主要只有execute和alter routine两种,主要针对的对象是procedure和function这两种对象,在授权routine level权限时,需要指定数据库和相关对象。

grant execute on test.p1 to ‘u1‘@‘%‘;

时间: 2024-07-30 01:32:49

Mysql中五级权限小结的相关文章

mysql中用户权限导出的脚本

MySQL数据库备份和迁移,是DBA日常工作中,经常需要做的工作.备份一般由物理备份和逻辑备份两种,对于用xtrabackup进行物理备份来说,表数据和用户权限都会全部备份和恢复:如果是逻辑备份的话,用户数据和授权信息都需要单独的导出导入,用户数据直接用 mysqldump 工具导出导入即可,但mysql中用户权限不能直接导出导入,一个权限一个权限的处理,有比较麻烦. 所以编写一个mysql用户权限脚本,对源数据库中的用户授权信息进行导出,就非常必要了.只要有用户权限的授权sql,不论是平时备份

MYSQL中的权限

MYSQL中的权限 MYSQL中的权限

详细解读MySQL中的权限

一.前言 很多文章中会说,数据库的权限按最小权限为原则,这句话本身没有错,但是却是一句空话.因为最小权限,这个东西太抽象,很多时候你并弄不清楚具体他需要哪 些权限. 现在很多mysql用着root账户在操作,并不是大家不知道用root权限太大不安全,而是很多人并不知道该给予什么样的权限既安全又能保证正常运行. 所以,本文更多的是考虑这种情况下,我们该如何简单的配置一个安全的mysql.注:本文测试环境为mysql-5.6.4 二.Mysql权限介绍 mysql中存在4个控制权限的表,分别为use

使用命令行将Excel数据表导入Mysql中的方法小结

从Excel数据表导入MySQL,已经做过好几次了,但每次都会碰到各种问题:invalid utf8 character string, data too long, ...,浪费了不少时间 为了提高效率,是时候指定一个数据导入的SOP了: 1.准备.txt文件 1.1 将要导入的数据(不含表头)从工作表复制.粘贴到一个新建的Excel数据表中(避免污染源数据) 1.2 粘贴时注意:使用右键paste as value选项,过滤掉源数据表中的多余格式(如,字体颜色.粗体等) 1.3 将新建的Ex

解决误删Mysql中root所有权限的方法!

背景: 长时间的对着电脑,造成了"神志不清",一不小心在Mysql下误操作了"revoke all on *.* from 'root'@'localhost'; ",这个命令的意思就是删除mysql中最高权限的用户root的所有权限.因为本机mysql的密码为空,虽然依旧可以进去mysql,但再也不法执行修改操作. 解决方法: 1.首先杀掉mysql进程 #pkill mysql 2.以--skip-grant-tables方式启动 #/usr/local/mys

mysql数据库中的权限

用户在访问数据库的时候,有时候我们并不希望所有访客都能对数据库内的数据进行增删改查等处理,这时候就需要用到权限管理. 在mysql中,权限是系统内定的一些"名词"(单词),大约30个,每个权限表示"可以做什么工作". 则分配权限就是相当于让某个用户可以做哪些工作.mysql中的用户信息都存储在系统数据库mysql的user表中,我们可以查看用户表来查看不同用户所拥有的权限,并更改不同用户所拥有的权限.语法语句:创建用户:create  user  '用户名'@'允许

MySQL用户与权限管理

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ MySQL权限系统表 MySQL的权限相关信息主要存储于mysql.user,mysql.db,mysql.host,mysql.table_priv和mysql.column_priv.这些表被称为grant tables. 用户管理 CREATER USER 命令创建用户 创建用户首先必须拥有mysql数据库的全局CREATE USER 权限,或INSERT权限.对于每个账户,CREATE USE

MariaDB/MySQL用户和权限管理

本文目录: 1.权限验证 1.1 权限表 1.2 图解认证和权限分配的两个阶段 1.3 权限生效时机 2.用户管理 2.1 创建用户 2.2 create user和alter user 2.3 记录创建用户的时间 2.4 查看用户权限 2.5 revoke命令的严格性 2.6 删除用户 3.设置密码和恢复root密码 3.1 设置密码 3.2 恢复root用户密码 MariaDB/MySQL中的user由用户名和主机名构成,如"[email protected]",同用户名但不同主机

【转】mysql 用户及权限管理 小结

转自:https://www.cnblogs.com/SQL888/p/5748824.html mysql 用户及权限管理 小结 MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命令可以为 MySQL 创建一个新用户: 1 CREATE USER username IDENTIFIED BY 'password'; 新用户创建完成,但是此刻如果以