grant授权

2024-05-30 23:18
文章标签 授权 grant

本文主要是介绍grant授权,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文实例,运行于 MySQL 5.0 及以上版本。

MySQL 赋予用户权限命令的简单格式可概括为:

  
grant 权限 on 数据库对象 to 用户

一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。

  
grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant update on testdb.* to common_user@'%'
grant delete on testdb.* to common_user@'%'

或者,用一条 MySQL 命令来替代:

  
grant select, insert, update, delete on testdb.* to common_user@'%'

二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。

grant 创建、修改、删除 MySQL 数据表结构权限。

  
grant create on testdb.* to developer@'192.168.0.%';
grant alter on testdb.* to developer@'192.168.0.%';
grant drop on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 外键权限。

  
grant references on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 临时表权限。

  
grant create temporary tables on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 索引权限。

  
grant index on testdb.* to developer@'192.168.0.%';

grant 操作 MySQL 视图、查看视图源代码 权限。

  
grant create view on testdb.* to developer@'192.168.0.%';
grant show view on testdb.* to developer@'192.168.0.%';

 

grant 操作 MySQL 存储过程、函数 权限。

  
grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status
grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure
grant execute on testdb.* to developer@'192.168.0.%';

三、grant 普通 DBA 管理某个 MySQL 数据库的权限。

  
grant all privileges on testdb to dba@'localhost'

其中,关键字 “privileges” 可以省略。


四、grant 高级 DBA 管理 MySQL 中所有数据库的权限。

  
grant all on *.* to dba@'localhost'

五、MySQL grant 权限,分别可以作用在多个层次上。

1. grant 作用在整个 MySQL 服务器上:

  
grant select on *.* to dba@localhost; -- dba 可以查询 MySQL 中所有数据库中的表。
grant all on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库

 

2. grant 作用在单个数据库上:

  
grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。

 

3. grant 作用在单个数据表上:

  
grant select, insert, update, delete on testdb.orders to dba@localhost;

 

这里在给一个用户授权多张表时,可以多次执行以上语句。例如:

  
grant select(user_id,username) on smp.users to mo_user@'%' identified by '123345';
grant select on smp.mo_sms to mo_user@'%' identified by '123345';


4. grant 作用在表中的列上:

  
grant select(id, se, rank) on testdb.apache_log to dba@localhost;

 

5. grant 作用在存储过程、函数上:

  
grant execute on procedure testdb.pr_add to 'dba'@'localhost'
grant execute on function testdb.fn_add to 'dba'@'localhost'

 

六、查看 MySQL 用户权限

查看当前用户(自己)权限:

  
show grants;

 

查看其他 MySQL 用户权限:

  
show grants for dba@localhost;

七、撤销已经赋予给 MySQL 用户权限的权限。

revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

  
grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;

八、MySQL grant、revoke 用户权限注意事项

1. grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。

2. 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“

  
grant select on testdb.* to dba@localhost with grant option;

这个特性一般用不到。实际中,数据库权限最好由 DBA 来统一管理。

*************************************************************************************************

 

遇到 SELECT command denied to user '用户名'@'主机名' for table '表名' 这种错误,解决方法是需要把吧后面的表名授权,即是要你授权核心数据库也要。

我遇到的是SELECT command denied to user 'my'@'%' for table 'proc',是调用存储过程的时候出现,原以为只要把指定的数据库授权就行了,什么存储过程、函数等都不用再管了,谁知道也要把数据库mysql的proc表授权

 

*************************************************************************************************

参考:http://zhidao.baidu.com/question/19633785.html

 

mysql授权表共有5个表:user、db、host、tables_priv和columns_priv。

授权表的内容有如下用途:
user表
user表列出可以连接服务器的用户及其口令,并且它指定他们有哪种全局(超级用户)权限。在user表启用的任何权限均是全局权限,并适用于所有数据库。例如,如果你启用了DELETE权限,在这里列出的用户可以从任何表中删除记录,所以在你这样做之前要认真考虑。

db表
db表列出数据库,而用户有权限访问它们。在这里指定的权限适用于一个数据库中的所有表

host表
host表与db表结合使用在一个较好层次上控制特定主机对数据库的访问权限,这可能比单独使用db好些。这个表不受GRANT和REVOKE语句的影响,所以,你可能发觉你根本不是用它。

tables_priv表
tables_priv表指定表级权限,在这里指定的一个权限适用于一个表的所有列

columns_priv表
columns_priv表指定列级权限。这里指定的权限适用于一个表的特定列

这篇关于grant授权的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017051

相关文章

【Shiro】Shiro 的学习教程(二)之认证、授权源码分析

目录 1、背景2、相关类图3、解析3.1、加载、解析阶段3.2、认证阶段3.3、授权阶段 1、背景 继上节代码,通过 debug 进行 shiro 源码分析。 2、相关类图 debug 之前,先了解下一些类的结构图: ①:SecurityManager:安全管理器 DefaultSecurityManager: RememberMeManager:实现【记住我】功能

spring security 中的授权使用

一、认证     身份认证,就是判断一个用户是否为合法用户的处理过程。Spring Security 中支持多种不同方式的认证,但是无论开发者使用那种方式认证,都不会影响授权功能使用。因为 SpringSecurity 很好做到了认证和授权解耦。   二、授权     授权,即访问控制,控制谁能访问哪些资源。简单的理解授权就是根据系统提前设置好的规则,给用户分配可以访问某一个资源的

OAuth2 Token实现授权码模式

文章目录 OAuth2 授权:Resource owner password(密码模式)OAuth2 授权:Authorization code grant授权码模式,适用于浏览器模式OAuth2:Implicit(简化授权模式)OAuth:Client credentials(客户端证书)授权码模式使用案例 OAuth2 授权:Resource owner password(密

SpringBoot + SpringSecurity 控制授权

授权简介 一般的人会认为,不同的角色登录进同一个系统,根据角色权限的不同,看到的菜单不同就是控制授权。其实并不是的,菜单的是否显示只是前端交互上的一个设计而已,真正需要授权的地方的接口的访问。 普通的系统通常会有两个端,一个是给用户用的业务系统(比如购物商城的买家端),一个是给公司运营人员用的管理端(可以统计销售量,用户量等信息)。 业务端的权限通常比较简单,可以区分为是否登录,或者简单的

JWT详解:一种轻量级的身份验证和授权机制

引言 JSON Web Token(JWT)是一种基于JSON格式的开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息。JWT因其轻量级、可扩展性和安全性,在Web应用程序和RESTful API中得到了广泛应用。本文将详细解析JWT的概念、结构、工作原理、应用场景以及使用时的安全注意事项。 JWT的基本概念 JWT是一种用于在用户和服务器之间传递安全

【渗透测试专栏】1.2认证和授权类-越权访问(水平/垂直越权)

该系列专栏旨在让漏洞检测变得更简单,只用于学习用途 靶机环境请看专栏前言专栏前言-WooYun漏洞库环境搭建-CSDN博客 目录 该系列专栏旨在让漏洞检测变得更简单,只用于学习用途 一、漏洞描述 1、水平越权 2、垂直越权 二、漏洞级别 三、漏洞检测方法 漏洞修复 一、漏洞描述 偏业务漏洞 1、水平越权 水平越权指的是在同一权限级别下,用户可以访问其他用户的资源或

【装包测试】Android应用权限授权小技巧

一、前言 大家在日常测试中,每次新安装应用或游戏都有一些前置的权限设置需要点击,但在不同的Android设备上的同意按钮都不完全相同,如果需要提高脚本的通用性以及复用性我们应该怎么办呢?那我们本周就一起来探讨一下这个问题吧~ 二、pm授权与取消授权指令详解 PM工具,即包管理器(Package Manager),是Android开发和测试中不可或缺的工具。可以用于执行安装应用程序、查询应用包

短剧看剧系统+商城功能,开发uniapp+PHP,正版片源供授权,短剧影视小程序带支付收益等模式 付费短剧小程序源码

目录 一、短剧看剧系统是什么? 二、短剧授权是什么? 三、短剧有哪些类型? 四、区别? 总结: 一、短剧看剧系统是什么? 首先小程序上架需要有资质(办资质需要20-30天)。 1、短剧微信小程序要求:《广播电视节目制作经营许可证》 2、短剧上架抖音小程序只要求:《广播电视节目制作经营许可证》+《ICP经营许可证》广播证相对比较快,通常7-10天就能办下来(需要提供编导

检查软件授权码是否过期

1.获取指定文件的授权过期时间 update_sq.sh #!/bin/bash# XML文件路径xml_file="/opt/AAS/license.xml"output_file="/root/output.txt"# 提取日期expiration=$(xmllint --xpath 'string(/license/@expiration)' "$xml_file")# 显示提取的

SpringBoot3 + Spring Security6认证授权

SpringBoot3 + Spring Security6 实现默认地址/login的认证 Spring Security 核心技术过滤器。一个web请求会经过一系列的过滤器进行认证授权。 主要是用默认的/login请求,继承UsernamePasswordAuthenticationFilter,来实现用户名和密码登录。 核心流程 Usern