MySQL用户权限查询详解:从全局到列级
5星 · 超过95%的资源 90 浏览量
更新于2024-08-31
2
收藏 84KB PDF 举报
在MySQL中,查询用户权限是一个关键任务,因为这有助于管理员监控和管理系统的安全性。本文将深入讲解如何使用MySQL语句来检查用户权限,特别是在全局层级、数据库层级、表层级、列层级以及子程序层级。
1. 全局层级权限:
- MySQL的全局权限存储在`mysql.user`表中,常见的全局权限包括GRANT ALL ON *.* 和 REVOKE ALL ON *.*。前者授予用户对所有数据库和表的完全访问,后者则撤销所有权限。
- 通过SQL命令如`GRANT select, insert ON *.* TO test@'%' IDENTIFIED BY 'test'`,可以为用户test授予全局级别的SELECT和INSERT权限,这里的'%'表示任何主机,`IDENTIFIED BY`后的字符串是密码。
2. 数据库层级权限:
- 权限针对特定数据库,存储在`mysql.db`和`mysql.host`表中。例如,`GRANT ALL ON db_name.*`用于授予用户对db_name数据库中的所有对象的权限,`REVOKE ALL ON db_name.*`则撤销这些权限。
3. 表层级权限:
- 通过`mysql.tables_priv`表管理表级别的权限,如`GRANT ALL ON db_name.tbl_name`授予对db_name数据库中的tbl_name表的所有列权限,`REVOKE ALL ON db_name.tbl_name`则是撤销该权限。
4. 列层级权限:
- 对于列级别的控制更精细,存放在`mysql.columns_priv`表中。在REVOKE操作时,需要明确指定被授权的列,以便精确管理权限。
5. 子程序层级权限:
- 存储过程相关的权限(CREATEROUTINE, ALTERROUTINE, EXECUTE, GRANT)可以授予全局层级、数据库层级以及子程序层级。CREATEROUTINE权限除外,其他权限可以在`mysql.procs_priv`表中找到。这些权限允许用户创建、修改或执行存储过程。
查询用户权限的方法包括:
- 使用`SHOW GRANTS FOR user_name`命令,如`SHOW GRANTS FOR test;`来查看test用户的当前权限列表。
- 如果之前使用了`FLUSH PRIVILEGES`命令,确保权限更改已生效。
理解并正确管理这些权限层次是确保数据库安全的关键,同时也能根据需要灵活调整用户在不同环境下的操作能力。对于数据库管理员来说,熟练掌握这些查询和权限设置语句是必不可少的技能。
2020-12-16 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-21 上传
PLAN向前进,决战大洋!
- 粉丝: 13
- 资源: 913
最新资源
- 人工智能原理实验.zip
- VCPP-Matlab.m.rar_matlab例程_Visual_C++_
- Thumbak-开源
- fso:快速[链接]缩短器
- try-haxe:允许在线测试Haxe的小型Webapp
- WordPress,经过Git验证。 每15分钟通过SVN同步一次,包括分支和标签! 该存储库只是WordPress Subversion存储库的镜像。 请不要发送请求请求。 而是将补丁提交到https://core.trac.wordpress.org/。-PHP开发
- thulcd.rar_微处理器开发_C++_Builder_
- spark-twitter-sentiment-analysis:具有Spark结构化流的Twitter主题的情感分析
- 人工智能检测恶意URL.zip
- Flaunt-crx插件
- mqtest:MQtest是一个简单的工具,可帮助您识别设备对哪些媒体查询做出响应
- Boxobox:与配套应用程序连接的Arduino机器人项目
- 人工智能直通车第二期 - 第八周作业.zip
- unholy_mess:项目计划软件
- 有效的外壳程序第2部分:成为剪贴板体操运动员
- ejercicios_tema3.zip_Perl_