前言
看过博主上一篇的盆友,可以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 
xxprivileges
授权的范围,比如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 
xxprivileges
撤销/回收授权的范围,比如all、select、create等。 - on 
[db_name].[table_name]
撤销/回收的对象,比如哪个库,哪个表。 - from 
[user]@[host]
撤销/回收的用户访问控制,比如test用户通过127.0.0.1访问数据库。 
结语
本文对mysql的权限操作进行了一定的介绍。希望可对有需要的盆友提供一定的帮助。
到此这篇关于详解如何对mysql数据库进行授权管理的文章就介绍到这了,更多相关mysql数据授权内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
            
                                            
                                            
                                            
发表评论