MySQL系列之数据授权(privilege)

打印 上一主题 下一主题

主题 976|帖子 976|积分 2928

媒介

看过博主上一篇的盆友,可以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 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)的权限,可以通过以下语句完成:
  1. SHOW GRANTS FOR [USER]@[HOST];
复制代码
检察用户的非特权属性,可通过以下语句完成:
  1. SHOW CREATE USER [USER]@[HOST];
复制代码
2. 分配权限

分配权限,统一使用以下语句完成:
  1. 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. 回收权限

既然有分配,那么就有回收。回收应该怎么操作,可通过以下语句完成:
  1. 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系列之怎样在Linux只安装客户端
MySQL系列之怎样正确的使用窗口函数(基于8.0版本)
MySQL系列之数据导入导出
MySQL系列之索引入门(上)
MySQL系列之索引入门(下)



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小秦哥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表