目录 前言 Q:如何对MySQL数据库进行授权管理 一、MySQL的“特权” 二、授权操作 结语
前言
看过博主上一篇的盆友,可以Get到一个知识点:数据授权(eg:grant xx to yy) 。对了,数据这么敏感,必须遵循“分而治之,最小认领”的原则 。在这个大数据盛行的时代,数据显然成为人类的第N个生产资料,没有它,好像我们“站得不太高,看得不够清,听得不够远” 。所以如何管理它,越来越重要了 。
今天博主继续大话MySQL,助你了解它是如何完成授权的 。Let’s Go'
Q:如何对MySQL数据库进行授权管理
提示:本文示例均已MySQL5.7为例 。
一、MySQL的“特权”
在学习如何授权前,咱们先来看看MySQL有哪些“可授之权”
。
1. 权限级别
级别 说明 全局 授予最高管理权限 。 数据库 授予数据库及其内的所有对象的权限 。 数据库对象 授予数据库对象(如表、索引、视图和存储例程)的权限 。
2. 权限清单
为进一步说明MySQL可以提供的特权,博主提供一个官方的列表:
权限 授权列表 作用域 ALL [PRIVILEGES] Synonym for “all privileges” Server administration ALTER Alter_priv Tables ALTER ROUTINE Alter_routine_priv Stored routines CREATE Create_priv Databases, tables, or indexes CREATE ROUTINE Create_routine_priv Stored routines CREATE TABLESPACE Create_tablespace_priv Server administration CREATE TEMPORARY TABLES Create_tmp_table_priv Tables CREATE USER Create_user_priv Server administration CREATE VIEW Create_view_priv Views DELETE Delete_priv Tables DROP Drop_priv Databases, tables, or views EVENT Event_priv Databases EXECUTE Execute_priv Stored routines FILE File_priv File access on server host GRANT OPTION Grant_priv Databases, tables, or stored routines INDEX Index_priv Tables INSERT Insert_priv Tables or columns LOCK TABLES Lock_tables_priv Databases PROCESS Process_priv Server administration PROXY See proxies_priv table Server administration REFERENCES References_priv Databases or tables RELOAD Reload_priv Server administration REPLICATION CLIENT Repl_client_priv Server administration REPLICATION SLAVE Repl_slave_priv Server administration SELECT Select_priv Tables or columns SHOW DATABASES Show_db_priv Server administration SHOW VIEW Show_view_priv Views SHUTDOWN Shutdown_priv Server administration SUPER Super_priv Server administration TRIGGER Trigger_priv Tables UPDATE Update_priv Tables or columns USAGE Synonym for “no privileges” Server administration
针对每个授权项,我们可以参考官方指导文档进行学习,直接跳转这里,进行查阅 。
二、授权操作
了解了以上的“特权”
后,我们可以自由支配它们,分配给适合的人 。
1. 查看权限
比如你想查看指定用户(user)的权限,可以通过以下语句完成:
SHOW GRANTS FOR [USER]@[HOST];
查看用户的非特权属性,可通过以下语句完成:
SHOW CREATE USER [USER]@[HOST];
2. 分配权限
分配权限,统一使用以下语句完成:
grant xx privileges on [DB_NAME].[TABLE_NAME] to [USER]@[HOST] identified by [PASSWORD] with grant option;
这里博主有必要对这个语句,做一个特别介绍:
grant xx
privileges 授权的范围,比如all、select、create等 。 on [DB_NAME]
.[TABLE_NAME]
授权的对象,比如哪个库,哪个表 。 to [USER]
@[HOST]
授权的用户访问控制,比如test用户通过127.0.0.1访问数据库 。 identified by [PASSWORD]
授权的用户访问密码 。
3. 回收权限
既然有分配,那么就有回收 。回收应该怎么操作,可通过以下语句完成:
revoke xx privileges on [DB_NAME].[TABLE_NAME] from [USER]@[HOST];
这里博主对这个语句,同样做一个特别介绍:
revoke xx
privileges 撤销/回收授权的范围,比如all、select、create等 。 on [DB_NAME]
.[TABLE_NAME]
撤销/回收的对象,比如哪个库,哪个表 。 from [USER]
@[HOST]
撤销/回收的用户访问控制,比如test用户通过127.0.0.1访问数据库 。
结语
本文对MySQL的权限操作进行了一定的介绍 。希望可对有需要的盆友提供一定的帮助 。
到此这篇关于详解如何对MySQL数据库进行授权管理的文章就介绍到这了,更多相关MySQL数据授权内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!