grant select, in" /> grant select, in" />
iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL-5.7权限详解
  • 175
分享到

MySQL-5.7权限详解

MySQL-5.7权限详解 2018-12-01 02:12:07 175人浏览 才女
摘要

*.*代表所有数据库的权限 mysql> grant all on *.* to "test"@"%"; Query OK, 0 rows affected (0.00 sec) mysql> grant select, in

MySQL-5.7权限详解

*.*代表所有数据库的权限

mysql> grant all on *.* to "test"@"%";
Query OK, 0 rows affected (0.00 sec)

mysql> grant select, insert on *.* to "test"@"%";
Query OK, 0 rows affected (0.00 sec)

(2)数据库级别权限
作用于某个指定的数据库上或所有的数据库上

mysql> grant all on test.* to "test"@"%";
Query OK, 0 rows affected (0.00 sec)

mysql> grant select, insert on test.* to "test"@"%";
Query OK, 0 rows affected (0.00 sec)

(3)数据库对象级别权限
作用于指定的数据库对象上(表、视图等)或所有数据库对象上

mysql> grant select, insert on test.orders to "test"@"localhost";
Query OK, 0 rows affected (0.07 sec)

mysql> grant select(order_date), insert(order_id,customer_name) on test.orders_1 to "test"@"localhost";
Query OK, 0 rows affected (0.01 sec)

权限存储在Mysql库的user、db、tables_priv、columns_priv、procs_priv这几个系统表中,待mysql实例启动后加载到内存中。

2.查看权限

(1)查看所有用户

mysql> SELECT DISTINCT CONCAT("User: """,user,"""@""",host,""";") AS query FROM mysql.user;
+------------------------------------+
| query                              |
+------------------------------------+
| User: "mysql.session"@"localhost"; |
| User: "mysql.sys"@"localhost";     |
| User: "root"@"localhost";          |
+------------------------------------+
3 rows in set (0.01 sec)

(2)查看用户权限

mysql> show grants for "root"@"localhost";
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO "root"@"localhost" WITH GRANT OPTION |
| GRANT PROXY ON ""@"" TO "root"@"localhost" WITH GRANT OPTION        |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)

(3)对比root用户在几个权限系统表中的数据

mysql> select * from mysql.user where user="root" and host="localhost";
+-----------+------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+-----------------------+-------------------------------------------+------------------+-----------------------+-------------------+----------------+
| Host      | User | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | plugin                | authentication_string                     | passWord_expired | password_last_changed | password_lifetime | account_locked |
+-----------+------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+-----------------------+-------------------------------------------+------------------+-----------------------+-------------------+----------------+
| localhost | root | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            | Y                      |          |            |             |              |             0 |           0 |               0 |                    0 | mysql_native_password | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA | N                | 2017-11-18 18:21:57   |              NULL | N              |
+-----------+------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+-----------------------+-------------------------------------------+------------------+-----------------------+-------------------+----------------+


mysql> select * from mysql.db where user="root" and host="localhost";
Empty set (0.01 sec)

mysql> select * from mysql.tables_priv where user="root" and host="localhost";
Empty set (0.00 sec)

mysql> select * from mysql.columns_priv where user="root" and host="localhost";
Empty set (0.00 sec)

mysql> select * from mysql.procs_priv where user="root" and host="localhost";
Empty set (0.00 sec)

(4)权限认证中的大小敏感

  • 字段user,password,authencation_string,db,table_name大小写敏感
  • 字段host,column_name,routine_name大小写不敏感

3.MySQL支持的权限

ALL或ALL PRIVILEGES	代表指定权限等级的所有权限。
ALTER	允许使用ALTER TABLE来改变表的结构,ALTER TABLE同时也需要CREATEINSERT权限。重命名一个表需要对旧表具有ALTERDROP权限,对新表具有CREATEINSERT权限。
ALTER ROUTINE	允许改变和删除存储过程和函数
CREATE	允许创建新的数据库和表
CREATE ROUTINE	允许创建存储过程和包
CREATE TABLESPACE	允许创建、更改和删除表空间和日志文件组
CREATE TEMPORARY TABLES	允许创建临时表
CREATE USER	允许更改、创建、删除、重命名用户和收回所有权限
CREATE VIEW  	允许创建视图
DELETE	允许从数据库的表中删除行
DROP	允许删除数据库、表和视图
EVENT	允许在事件调度里面创建、更改、删除和查看事件
EXECUETE	允许执行存储过程和包
FILE	    允许在服务器的主机上通过LOAD DATA INFILESELECT ... INTO OUTFILELOAD_FILE()函数读写文件
GRANT OPTION	允许向其他用户授予或移除权限
INDEX	允许创建和删除索引
INSERT	允许向数据库的表中插入行
LOCK TABLE	允许执行LOCK TABLES语句来定表
PROCESS	允许显示在服务器上执行的线程信息,即被会话所执行的语句信息。这个权限允许你执行SHOW PROCESSLIST和mysqladmin processlist命令来查看线程,同时这个权限也允许你执行SHOW ENGINE命令
PROXY	允许用户冒充成为另外一个用户
REFERENCES	允许创建外键
RELOAD	允许使用FLUSH语句
REPLICATION CLIENT	允许执行SHOW MASTER STATUS,SHOW SLAVE STATUSSHOW BINARY LOGS命令
REPLICATION SLAVE	允许SLAVE服务器连接到当前服务器来作为他们的主服务器
SELECT	允许从数据库中查询表
SHOW DATABASES	允许账户执行SHOW DATABASE语句来查看数据库。没有这个权限的账户只能看到他们具有权限的数据库。
SHOW VIEW	允许执行SHOW CREATE VIEW语句
SHUTDOWN	允许执行SHUTDOWN语句和mysqladmin shutdown已经mysql_shutdown() C api函数
SUPER	允许用户执行CHANGE MASTER TO,KILL或mysqladmin kill命令来杀掉其他用户的线程,允许执行PURGE BINARY LOGS命令,通过SET GLOBAL来设置系统参数,执行mysqladmin debug命令,开启和关闭日志,即使read_only参数开启也可以执行update语句,打开和关闭从服务器上面的复制,允许在连接数达到max_connections的情况下连接到服务器。
TRIGGER	允许操作触发器
UPDATE	允许更新数据库中的表
USAGE	代表没有任何权限,只能登陆

4.系统权限表

User表:存放用户账户信息以及全局级别(所有数据库)权限,决定了来自哪些主机的哪些用户可以访问数据库实例,如果有全局权限则意味着对所有数据库都有此权限;

DB表:存放数据库级别的权限,决定了来自哪些主机的哪些用户可以访问此数据库;

Tables_priv表:存放表级别的权限,决定了来自哪些主机的哪些用户可以访问此数据库的这个表;

Columns_priv表:存放列级别的权限,决定了来自哪些主机的哪些用户可以访问此数据库的这个表的这个字段;

Procs_priv表:存放存储过程和函数级别的权限。

5.授权方式详解

GRANT命令用来建立新用户,指定用户口令并增加用户权限

mysql> GRANT  ON  TO  [IDENTIFIED BY ""] [WITH GRANT OPTION];

参数说明:
1.privileges是一个用逗号分隔的你想要赋予的MySQL用户权限的列表。
你可以指定的权限可以分为三种类型:

  数据库/数据表/数据列权限(AlterCreate、Delete....) 
  全局管理MySQL用户权限(file、PROCESS、reload、shutdown)
  特别的权限(all、usage

user表中host列的值的意义

%            匹配所有主机
localhost    localhost不会被解析成IP地址,直接通过UNIXSocket连接
127.0.0.1    会通过tcp/IP协议连接,并且只能在本机访问;
::1          ::1就是兼容支持ipv6的,表示同ipv4127.0.0.1

WITH GRANT OPTION 权限传递
A.如果带了 with grant option ,那么用户testuser1可以将select ,update权限传递给其他用户( 如testuser2)

grant select,update on bd_corp to testuser2

B.如果没带with grant option,那么用户testuser1不能给testuser2授权

6.权限的生效

  • 执行grant、revoke、set password、rename user命令修改权限后,MySQL会自动将修改后的权限信息同步加载到系统内存中;
  • 如果执行insert、update、delete操作上述的系统权限表后,则必须在执行刷新命令才能同步到内存
  • 如果是修改tables和colunms级别的权限,则客户端的下次操作时新权限会生效;
  • 如果是修改database级别的权限,则新权限在客户端执行use database命令后生效
  • --skip-grant-tables可以跳过所有系统权限表而允许所有用户登录

7.创建用户

mysql> create user "test"@"localhost" identified by "mysql";
Query OK, 0 rows affected (0.00 sec)

mysql> grant select on *.* to "test"@"localhost" with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> show create user "test"@"localhost"G
*************************** 1. row ***************************
CREATE USER for test@localhost: CREATE USER "test"@"localhost" IDENTIFIED WITH "mysql_native_password" AS "*E74858DB86EBA20BC33D0AECAE8A8108C56B17FA" REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK
1 row in set (0.00 sec)

8.回收权限

revoke跟grant的语法差不多,只需要把关键字 “to” 换成 “from” 即可;

mysql> show grants for "test"@"localhost";
+---------------------------------------------------------------------+
| Grants for test@localhost                                           |
+---------------------------------------------------------------------+
| GRANT SELECT, DELETE ON *.* TO "test"@"localhost" WITH GRANT OPTION |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> revoke delete on *.* from "test"@"localhost";
Query OK, 0 rows affected (0.00 sec)

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

9.删除用户

mysql> drop user "test"@"localhost";
Query OK, 0 rows affected (0.00 sec)
  分类: Mysql
您可能感兴趣的文档:

--结束END--

本文标题: MySQL-5.7权限详解

本文链接: https://www.lsjlt.com/news/6243.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL-5.7权限详解
    *.*代表所有数据库的权限 mysql> grant all on *.* to "test"@"%"; Query OK, 0 rows affected (0.00 sec) mysql> grant select, in...
    99+
    2018-12-01
    MySQL-5.7权限详解
  • MySQL 权限控制详解
    mysql权限控制     作为一名DBA,想必大家对MySQL中的权限都不陌生,MySQL中对于权限的控制分为三个层面: 全局性的管理权限,作用于整个MySQL实例级别 数...
    99+
    2022-05-12
    MySQL 权限 MySQL 权限控制
  • 详解MySQL 用户权限管理
    前言:  不清楚各位同学对数据库用户权限管理是否了解,作为一名 DBA ,用户权限管理是绕不开的一项工作内容。特别是生产库,数据库用户权限更应该规范管理。本篇文章将会介绍下 MySQL 用户权限管理相关内容...
    99+
    2022-05-30
    MySQL 权限管理 MySQL 用户权限
  • Mysql用户权限分配详解
    文章目录 MySQL 权限介绍一、Mysql权限级别分析(1)全局级别(1.1) USER表的组成结构(1.1.1) 用户列(1.1.2) 权限列(1.1.3) 安全列(1.1.4) 资源控制...
    99+
    2023-09-14
    mysql 数据库 java
  • MySQL数据库——MySQL user权限表详解
    MySQL 在安装时会自动创建一个名为 mysql 的数据库,mysql 数据库中存储的都是用户权限表。用户登录以后,MySQL 会根据这些权限表的内容为每个用户赋予相应的权限。 user 表是 MySQL 中最重要的一个权限表,用来记录允...
    99+
    2023-09-10
    数据库 mysql 服务器
  • 关于linux权限s权限和t权限详解
    常用权限 linux系统内有档案有三种身份 u:拥有者  g:群组   o:其他人 这些身份对于文档常用的有下面权限: r:读权限,用户可以读取文档的内容,如用cat,more查看 w:写权...
    99+
    2022-06-04
    linux权限 s权限 t权限
  • linux权限详解
    文章目录 1.用户转换1.将普通用户转换成root1.su -2. su 2.将root转换为普通用户 2.文件的权限1.文件访问者的分类拥有者和other所属组 2.rwx的...
    99+
    2023-09-23
    linux 服务器 运维
  • MySQL用户与权限的管理详解
    本文实例讲述了MySQL用户与权限的管理。分享给大家供大家参考,具体如下: 用户连接到MySQL,可以做各种查询,这都是MySQL用户与权限功能在背后维持着操作。 用户与数据库服务器交互数据,分为两个阶...
    99+
    2022-10-18
  • Vue权限指令控制权限详解
    目录第一种-自定义权限指令第二种:v-if自定义控制最后说明在日常的开发过程中,我们除了使用Vue已有的指令之外,还需自定义指令,需要对DOM节点进一步操作。 在后台系统中,最常用的...
    99+
    2022-11-13
  • MySQL 5.7升级8.0过程(详解)
    记一次MySQL 5.7升级8.0的详细过程,聊聊我的思路,希望可以帮助大家。 以一个例子为切入点 一、升级背景 为什么要升级到MySQL8.0?大概多久进行一次? 大家可以参考下图记录的各个版本的发布时间,来确认各个版本的最终补丁日期:...
    99+
    2023-09-08
    mysql 数据库 服务器
  • MySQL用户和数据权限管理详解
    目录1、管理用户1.1、添加用户1.2、删除用户1.3、修改用户名1.4、修改密码2、授予权限和回收权限2.1、授予权限2.2、权限的转移和限制2.3、回收权限1、管理用户 1.1、添加用户 可以使用CREATE USE...
    99+
    2022-08-25
  • Oracle权限管理详解
    Oracle 权限  权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级、System 系统级、Role 角色级。这些权限可以授予给用户、特殊用户...
    99+
    2022-10-18
  • Android扫描WIFI权限详解
    目录权限注册广播监听扫描状态扫描WIFI示例权限 上篇文章 Android 获取IP和UA中提及了获取WIFI的IP地址,本篇文章介绍下如何扫描WIFI。 官方文档 根据官方文档描...
    99+
    2023-03-19
    Android 扫描WIFI权限 Android WIFI
  • Android 6.0权限申请详解及权限资料整理
    在android 6.0开始,部分的权限需要我们动态申请,也就是说当我们的打开app的时候系统不会主动像您申请app所需要的部分权限,需要客户在使用app的时候主动的去申请。 ...
    99+
    2022-06-06
    Android
  • 详细介绍Mysql Grant用户权限
    下面一起来了解下Mysql Grant用户权限,相信大家看完肯定会受益匪浅,文字在精不在多,希望Mysql Grant用户权限这篇短内容是你想要的。MySQL权限图:很明显总共27个权限:下面是具体的权限介...
    99+
    2022-10-18
  • MySQL数据权限的实现详情
    目录数据权限模型实现效果数据模型数据权限表结构授权维度表具体授权维度表(产品线)组件路由表角色表角色组件绑定表角色组件授权规则表(核心)实现过程代码实现自定义数据权限注解定义数据权限处理切面数据权限工具类查询组件规则Co...
    99+
    2022-08-12
    MySQL数据权限实现 MySQL数据权限
  • Android权限管理之Permission权限机制及使用详解
    前言: 最近突然喜欢上一句诗:“宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒。” 哈哈~,这个和今天的主题无关,最近只要不学习总觉得生活中少了点什么,所以想着围绕着最近...
    99+
    2022-06-06
    Android
  • MySQL file权限
    file权限指的是是否能够对系统的文件读取和写操作. 拥有file权限才可以执行 select ..into   outfile...
    99+
    2022-10-18
  • Linux 下sudo网络权限详解
    Linux 下sudo网络权限详解 对于设置了网络代理的服务器,在当前用户下执行网络访问没有问题,但通过sudo执行命令时,就会出现“无网络连接”的错误。 背景   对于设置了网络代理的服务器,在当前用户...
    99+
    2022-06-04
    详解 权限 网络
  • Android动态权限申请详解
    目录前言使用方案绕过生命周期检测最终实现总结前言 注:只想看实现的朋友们可以直接跳到最后面的最终实现 大家是否还在为动态权限申请感到苦恼呢?传统的动态权限申请需要在Activity中...
    99+
    2023-05-17
    Android动态权限申请 Android权限申请
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作