mysql 授予所有权限_请问 :mysql数据库如何将某一个表的查询权限授予给所有用户?...
MySQL没有实现public关键词。所以,要把一个表(如表table1)的select权限授予所有用户,需要自己遍历所有用户。表Table1的权限,可以通过:
select * from mysql.tables_priv where Table_name = 'table1';
查看。所以,你可以直接在这张表上动手,也可以把所有用户读至游标,遍历所有用户,并用grant语句分别授权:
以下为演示代码:
delimiter $$
create procedure grant_select_table1_to_pubic()
begin
-- 定义变量,用于储存用户名:
declare v_user char(32);
-- 定义结束标志
DECLARE done INT DEFAULT FALSE;
-- 定义游标,这里只演示普通用户:
declare cur_user cursor for
select user from mysql.user
where User <> 'root' and user not like '%.%' and user <>'' ;
-- 定义 NOT FOUND类异常的HANDLER:
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-- 打开游标
open cur_user ;
-- 取游标的一行数据到变量(取一个用户名),并推进游标
fetch cur_user into v_user ;
-- 每取一个user,构造一条授权语句,然后执行这条语句
-- (因为grant语句不接受变量,它会把变量名当成一个用户名,所以只能构造整条语句)
while not done do
set @query = CONCAT('GRANT SELECT ON table1 to ',v_user);
prepare statement from @query;
execute statement;
deallocate prepare statement;
-- 取下一个用户
fetch cur_user into v_user;
end while;
close cur_user;
end$$;
-- 调用过程,授权给所用用户:
call grant_select_table1_to_pubic();
-- 验证表“table1”的SELECT权限(果然有给所有用户授权哦)
select * from mysql.tables_priv where Table_name = 'table1';
如果用户很少的话,不如直接写grant语句。万一用户较多,可考虑以上方案。
另外,你也可以考虑使用角色:
create role if not exists 'SELECT_table1'; -- 创建角色
grant SELECT on table1 to 'SELECT_table1'; -- 授予该角色select table1的权限
grant 'SELECT_table1' to 用户1,用户2,....; -- 把角色的权限授予用户......,比写一堆grant语句省事
可惜的是,角色需要MySQL 8.0以上版本才支持!!!
mysql 授予所有权限_请问 :mysql数据库如何将某一个表的查询权限授予给所有用户?...相关推荐
- mysql sql 加参数_[sql]mysql参数(配置)手册
[client] #客户端 port = 3306 #mysql客户端连接时的默认端口号 socket = /application/mysql-5.5.32/tmp/mysql.sock [mysq ...
- C++基础:什么是数据库?如何创建一个表?
标题:C++基础:什么是数据库?如何创建一个表? 如果你是一个数据库新手,这将给你提供一些必需的基本知识.理解数据库是掌握MySQL的一个重要部分. 什么是数据库 数据库这个术语的用法很多,数据库是一 ...
- SQL数据库中如何把一个表中的数据复制到另一个表中?
SQL数据库中如何把一个表中的数据复制到另一个表中?** 1整个表复制:** insert into table1 select * from table2 2部分列复制:** insert into ...
- 快速清除oracle多个表,Oracle数据库之批量清除一个表的数据,TB级别数据
本文主要向大家介绍了Oracle数据库之批量清除一个表的数据,TB级别数据,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 有个需求,要求清理8TB的数据,只保留一个月的数据,现 ...
- mysql数据库连接配置路径_[zz]MySQL数据库主从同步安装与配置总结
注意:本文出自"阿飞"的博客 ,如果要转载本文章,请与作者联系! 并注明来源: http://blog.sina.com.cn/s/blog_49fd52cf0100pog2.ht ...
- 打开mysql的远程连接_开启mysql的远程访问权限
基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限.下面是基本的步骤: 1.登录到mysql中,为root进行远程访问的授权,执行下面的命令: mysql&g ...
- mysql数据库连接配置路径_关于mysql安装后更改数据库路径方法-linux环境
使用yum安装mysql后,数据库路径一般和日志文件放在一个分区/var路径下. 久后,随着日志文件的增加,数据库的存放大小会显得不足,因此,建议安装mysql后将数据库路径更改到一个更加合理的分区存 ...
- 创建数据账号只有个别表的权限_创建MySQL用户 赋予某指定库表的权限
摘自: http://renxiangzyq.iteye.com/blog/763837 update ERROR 1364 (HY000): Field 'ssl_cipher' doesn't h ...
- mysql拒绝远程连接_解决Mysql数据库拒绝远程连接和忘记密码的问题
解决数据库忘记密码的问题 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 编辑m ...
最新文章
- 漫画:如何在数组中找到和为 “特定值” 的两个数?
- jmeter根据循环获取参数_jmeter forEach循环获取response参数值进行接口请求
- Scala Akka网络编程:Client Server网络通信(你问我答)案例
- excel修改列名 pandas_P9:pythonpandas玩转excel文件
- 华为首家欧洲生产厂选择落户法国小镇 将为4G/5G基站生产零部件
- lr接口压测_LoadRunner+Java接口性能测试
- AS3多线程快速入门(一):Hello World[
- Web Components 系列(十)—— 实现 MyCard 的基本布局
- “鬼影”浅析 - 反病毒,信息安全,网络安全,反木马,病毒资讯平台,安全解决方案,电脑使用技巧,杀毒软件交流,anti-virus,民间反病毒联盟
- 右浮动的顺序是反过来的,html中第一个是最后显示,而最后一个会在第一个显示。
- 在线计算机微积分,高等数学计算器
- selenium爬取淘宝评论信息
- 01 初识微信小程序
- 6 个常用的 API 接口在线管理平台
- 基于 MQTT 通讯一个简单的 Java工程
- 今日头条---后台开发笔试题
- matlab抽样仿真混叠图,数字信号处理及MATLAB仿真__前言
- 用户生命周期(User Lifetime)
- Error running 'PY201': Cannot run program C:\Users\GJ\AppData\Local\Programs\Python\Python37\python
- PHP2020语言排行榜,TIOBE公布了2020年12月编程语言排行榜