周文达 发表于 2024-11-26 09:08:01

详解如何对MySQL数据库进行授权管理

前言

看过博主上一篇的盆友,可以Get到一个知识点:数据授权(eg:grant xx to yy)。对了,数据这么敏感,必须遵循“分而治之,最小认领”的原则。在这个大数据盛行的时代,数据显然成为人类的第N个生产资料,没有它,好像我们“站得不太高,看得不够清,听得不够远”。所以如何管理它,越来越重要了。
今天博主继续大话MySQL,助你了解它是如何完成授权的。Let’s Go~

Q:如何对MySQL数据库进行授权管理

提示:本文示例均已MySQL5.7为例。
一、MySQL的“特权”

在学习如何授权前,咱们先来看看MySQL有哪些“可授之权”。

1. 权限级别

级别说明全局授予最高管理权限。数据库授予数据库及其内的所有对象的权限。数据库对象授予数据库对象(如表、索引、视图和存储例程)的权限。
2. 权限清单

为进一步说明MySQL可以提供的特权,博主提供一个官方的列表:
权限授权列表作用域ALL Synonym for “all privileges”Server administrationALTERAlter_privTablesALTER ROUTINEAlter_routine_privStored routinesCREATECreate_privDatabases, tables, or indexesCREATE ROUTINECreate_routine_privStored routinesCREATE TABLESPACECreate_tablespace_privServer administrationCREATE TEMPORARY TABLESCreate_tmp_table_privTablesCREATE USERCreate_user_privServer administrationCREATE VIEWCreate_view_privViewsDELETEDelete_privTablesDROPDrop_privDatabases, tables, or viewsEVENTEvent_privDatabasesEXECUTEExecute_privStored routinesFILEFile_privFile access on server hostGRANT OPTIONGrant_privDatabases, tables, or stored routinesINDEXIndex_privTablesINSERTInsert_privTables or columnsLOCK TABLESLock_tables_privDatabasesPROCESSProcess_privServer administrationPROXYSee proxies_priv tableServer administrationREFERENCESReferences_privDatabases or tablesRELOADReload_privServer administrationREPLICATION CLIENTRepl_client_privServer administrationREPLICATION SLAVERepl_slave_privServer administrationSELECTSelect_privTables or columnsSHOW DATABASESShow_db_privServer administrationSHOW VIEWShow_view_privViewsSHUTDOWNShutdown_privServer administrationSUPERSuper_privServer administrationTRIGGERTrigger_privTablesUPDATEUpdate_privTables or columnsUSAGESynonym for “no privileges”Server administration针对每个授权项,我们可以参考官方指导文档进行学习,直接跳转这里,进行查阅。

二、授权操作

了解了以上的“特权”后,我们可以自由支配它们,分配给适合的人。

1. 查看权限

比如你想查看指定用户(user)的权限,可以通过以下语句完成:
SHOW GRANTS FOR @;查看用户的非特权属性,可通过以下语句完成:
SHOW CREATE USER @;
2. 分配权限

分配权限,统一使用以下语句完成:
grant xx privileges on . to @ identified by with grant option;这里博主有必要对这个语句,做一个特别介绍:

[*]grant xx privileges
授权的范围,比如all、select、create等。
[*]on .
授权的对象,比如哪个库,哪个表。
[*]to @
授权的用户访问控制,比如test用户通过127.0.0.1访问数据库。
[*]identified by
授权的用户访问密码。

3. 回收权限

既然有分配,那么就有回收。回收应该怎么操作,可通过以下语句完成:
revoke xx privileges on . from @;这里博主对这个语句,同样做一个特别介绍:

[*]revoke xx privileges
撤销/回收授权的范围,比如all、select、create等。
[*]on .
撤销/回收的对象,比如哪个库,哪个表。
[*]from @
撤销/回收的用户访问控制,比如test用户通过127.0.0.1访问数据库。

结语

本文对MySQL的权限操作进行了一定的介绍。希望可对有需要的盆友提供一定的帮助。
到此这篇关于详解如何对MySQL数据库进行授权管理的文章就介绍到这了,更多相关MySQL数据授权内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/database/3309331io.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 详解如何对MySQL数据库进行授权管理