mysql用户权限管理:查看用户权限、授予用户权限、收回用户权限
查看用户权限、授予用户权限、收回用户权限命令总结:
项 | 命令示例 |
---|---|
查看用户权限 |
show grants; show grants for chushiyan@localhost; |
授予用户权限 |
grant insert on test.* to chushiyan@localhost; grant delete on test.* to chushiyan@localhost; grant update on test.* to chushiyan@localhost; grant select on test.* to chushiyan@localhost; |
收回用户权限 |
revoke insert,delete,update,select on test.* from chushiyan@localhost; revoke all on test.* from chushiyan@localhost; revoke all ,grant option from chushiyan@localhost; |
具体详情见下。
一、查看用户权限
(一)使用show grant命令查看用户权限
1、查询当前用户权限:
show grants;
示例:
mysql> show grants;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*7BB4897EB74329520EE1456DDA7DC45ED2CA2AD0' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
2、查看指定用户的权限
show grants for chushiyan@localhost;
首先创建用户chushiyan,然后授予test库的查询权限
create user chushiyan@localhost identified by “123456”;
grant select on test.* to chushiyan@localhost;
查看用户chushiyan的权限:
mysql> show grants for chushiyan@localhost ;
+------------------------------------------------------------------------------------------------------------------+
| Grants for chushiyan@localhost |
+------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'chushiyan'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT ON `test`.* TO 'chushiyan'@'localhost' |
+------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
show grants命令将授权语句都打印出来了。第一条记录是使用create user命令创建用户chushiyan时默认的授权,第二条就是我们授予的test库的查询权限。
(二)使用select直接查询mysql.user表查看用户的全局权限
SELECT * FROM mysql.user WHERE user='chushiyan'\G
注释:\G使查询到的每列打印到单独的行,也有’;'的作用
mysql.user表存放的是用户名、密码、来源主机,同时也存放了用户的全局权限。
mysql> SELECT * FROM mysql.user WHERE user='chushiyan'\G
*************************** 1. row ***************************Host: localhostUser: chushiyanPassword: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9Select_priv: NInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: NShutdown_priv: NProcess_priv: NFile_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NShow_db_priv: NSuper_priv: N
Create_tmp_table_priv: NLock_tables_priv: NExecute_priv: NRepl_slave_priv: NRepl_client_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NCreate_user_priv: Nssl_type:ssl_cipher:x509_issuer:x509_subject:max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0
1 row in set (0.00 sec)
二、授予用户权限
示例:授予test库中所有表的增删改查权限:
grant insert on test.* to chushiyan@localhost;
grant delete on test.* to chushiyan@localhost;
grant update on test.* to chushiyan@localhost;
grant select on test.* to chushiyan@localhost;
授权后查看该用户的权限:
mysql> show grants for chushiyan@localhost ;
+------------------------------------------------------------------------------------------------------------------+
| Grants for chushiyan@localhost |
+------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'chushiyan'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `test`.* TO 'chushiyan'@'localhost' |
+------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
那mysql中都有哪些权限?
mysql中用户的权限:
权限类型 | 权限说明 |
---|---|
All/All Privileges | 代表全局或者全数据库对象级别的所有权限 |
Alter | 代表允许修改表结构的权限,但必须要求有create和insert权限配合。如果是rename表名,则要求有alter和drop原表, create和insert新表的权限 |
Alter routine | 代表允许修改或者删除存储过程、函数的权限 |
Create | 代表允许创建新的数据库和表的权限 |
Create routine | 代表允许创建存储过程、函数的权限 |
Create tablespace | 代表允许创建、修改、删除表空间和日志组的权限 |
Create temporary tables | 代表允许创建临时表的权限 |
Create user | 代表允许创建、修改、删除、重命名user的权限 |
Create view | 代表允许创建视图的权限 |
Delete | 允许执行delete操作 |
Drop | 代表允许删除数据库、表、视图的权限,包括truncate table命令 |
Event | 代表允许查询,创建,修改,删除MySQL事件 |
Execute | 代表允许执行存储过程和函数的权限 |
File | 代表允许在MySQL可以访问的目录进行读写磁盘文件操作,可使用的命令包括load data infile,select … into outfile,load file()函数 |
Grant option | 代表是否允许此用户授权或者收回给其他用户你给予的权限,重新付给管理员的时候需要加上这个权限 |
Index | 代表是否允许创建和删除索引 |
Insert | 代表是否允许在表里插入数据,同时在执行analyze table,optimize table,repair table语句的时候也需要insert权限 |
Lock tables | 代表允许对拥有select权限的表进行锁定,以防止其他链接对此表的读或写 |
Process | 代表允许查看MySQL中的进程信息,比如执行show processlist, mysqladmin processlist, show engine等命令 |
Reference | 是在5.7.6版本之后引入,代表是否允许创建外键 |
Reload | 代表允许执行flush命令,指明重新加载权限表到系统内存中,refresh命令代表关闭和重新开启日志文件并刷新所有的表 |
lication client | 代表允许执行show master status,show slave status,show binary logs命令 |
Replication slave | 代表允许slave主机通过此用户连接master以便建立主从复制关系 |
Select | 允许执行select操作 |
Show databases | 代表允许执行show databases命令查看所有的数据库名 |
Show view | 代表允许执行show create view命令查看视图创建的语句 |
Shutdown | 代表允许关闭数据库实例,执行语句包括mysqladmin shutdown |
Super | 代表允许执行一系列数据库管理命令,包括kill强制关闭某个连接命令, change master to创建复制关系命令,以及create/alter/drop server等命令 |
Trigger | 代表允许创建,删除,执行,显示触发器的权限 |
Update | 允许执行update操作 |
Usage | 是创建一个用户之后的默认权限,其本身代表连接登录权限。使用create user语句创建的用户,默认就拥有这个usage权限,但是除了能登录之外, |
三、收回用户权限
(一)收回指定权限
收回前面授予test库中所有表的增删改查权限:
revoke insert,delete,update,select on test.* from chushiyan@localhost;
或者也可以通过下面命令收回对test库中所有表的所有权限:
revoke all privileges on test.* from chushiyan@localhost;
# 当然省略privileges也可以:
revoke all on test.* from chushiyan@localhost;
特殊情况:
1、usage权限是用户一经创建就拥有的,使用revoke命令无法收回:
mysql> revoke usage on *.* from chushiyan@localhost;
Query OK, 0 rows affected (0.00 sec)mysql> show grants for chushiyan@localhost ;
+------------------------------------------------------------------------------------------------------------------+
| Grants for chushiyan@localhost |
+------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'chushiyan'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
+------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
(二)收回所有权限
下面这个命令会收回该用户所有权限(当然除了用户一创建就有的usage权限)
revoke all ,grant option from chushiyan@localhost;
mysql> revoke all ,grant option from chushiyan@localhost;
Query OK, 0 rows affected (0.01 sec)mysql> show grants for chushiyan@localhost ;
+------------------------------------------------------------------------------------------------------------------+
| Grants for chushiyan@localhost |
+------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'chushiyan'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
+------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql用户权限管理:查看用户权限、授予用户权限、收回用户权限相关推荐
- cognos java用户权限_Cognos 权限管理之第三方目录管理员器、报表服务器权限管理、FrameWork权限管理等详细配置 【39页深度好文图文并茂带你全面了解Cognos权限管理】...
一.引言 1.1. 编写目的 本文档是结合以往的开发经验,从实际报表开发出发,详细介绍了ReportNet报表设计流程.开发技巧,报表性能调优.FM建模规范及技巧讲解.总结的文档希望对大家在日后的开发 ...
- rbac权限管理5张表_PHP之常用的RBAC权限管理详解
文章正文 在说权限管理前,应该先知道权限管理要有哪些功能: (1).用户只能访问,指定的控制器,指定的方法 (2).用户可以存在于多个用户组里 (3).用户组可以选择,指定的控制器,指定的方法 (4) ...
- sybase用户权限管理3 _角色授予
为登录用户授予角色 角色,或者受角色授权方式,是ASE为登录用户(数据库用户)执行某类操作所进行的集团授权方式,所谓的某类操作,可能是某种系统管理任务,也可能是某类应用操作,这些操作需要ASE提供安全 ...
- oracle有dba角色用户,ORACLE管理-查看拥有DBA角色的用户
1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户或角色系统权限( ...
- linux用户密码管理,Linux_详解Linux中的用户密码管理命令passwd和change,passwd
修改用户密码参数
nbsp - phpStudy...
详解Linux中的用户密码管理命令passwd和change passwd 修改用户密码 参数 -k 保持未过期身份验证令牌 -l 关闭账号密码.效果相当于usermod -L,只有root才有权使用 ...
- 数据级的权限管理和功能级的权限管理的区别,不使用框架(shiro,springsecurity)做权限设计的思考
1 数据级的权限管理和功能级的权限管理 引自:http://www.iteye.com/problems/97374 功能级权限,有大有小.大的可以直接包括一个业务模块,小的可以是一个按钮.一般的功能 ...
- hive表级权限控制_数据库权限管理:表、行、列级别的权限控制
权限规则 1. 在配有主从集群时建议在主节点上做权限相关操作 2. 只有管理员和超级管理员才有将数据导入至表中的权限 3. 管理员用户赋予的是以整表为单位的权限,所有能赋予的权限为create/sel ...
- java 接口权限控制_手把手教你搞定权限管理,结合Spring Security实现接口的动态权限控制!...
SpringBoot实战电商项目mall(30k+star)地址:github.com/macrozheng/- 摘要 权限控管理作为后台管理系统中必要的功能,mall项目中结合Spring Secu ...
- linux 权限管理 改变groupid,如何在linux下修改组权限
chmod g+r path/file 加读权限 当前目录 chmod -R g+r path/file 加读权限 当前目录以及子目录 g-r 减读权限 g+w 加写权限 g-w g+x 加执行权限 ...
- 计算机如何对多个用户进行管理,如何给多个账户设置密码?-用户账户控制设置...
在Windows系统中,给多个账户设置密码是对多个账户的安全性进行保障的作用,但是@小恩课堂头条号里面只说到一个方法,只是给单用户设置密码用的,不符合个人的习惯,接下来,我们用三种方法来讲解如何给多个 ...
最新文章
- 软件:向工业互联网产业成功转型的关键
- Nginx的upstream目前支持5种分配方式
- 如何解决XML文件中的警告提示“No grammar constraints (DTD or XML Schema) referenced in the document.”...
- win服务器是如何发展到现在的?
- js 数组/对象/日期的浅克隆
- 乙肝疫苗该怎么打(转)
- 基于spring注解AOP的异常处理
- 零基础学python pdf-笔记《零基础入门学习Python(第2版)》PDF+课件+代码分析
- Alibaba内部713页Java程序性能优化实战手册首次开放,大受好评
- 【课程作业】学术英语写作:文献阅读报告1
- python包离线安装教程_Linux下离线安装Python项目的依赖包
- 数据存取演变史、数据库软件应用史、数据库的本质、分类、 MySQL数据库、系统服务制作、基本的SQL语句
- html5打开抖音链接,抖音主页链接在哪里弄(主页链接设置教程)
- 对比:空洞卷积与转置卷积(吉米王)
- 简单测试IP地址连通性
- 什么,BOM指的是物料清单?
- oracle instr函数(oracle 用instr 来代替 like)
- 0.爬虫介绍及requests库的使用
- 分享一下我的阿里3面+HR面面经,附上我总结的面试真题!
- 离线部署python project 2021年4月2日更新