MYSQL 执行数据库权限问题
来源:互联网 发布:股票网络销售技巧 编辑:程序博客网 时间:2024/05/18 01:39
最近在写程序,把SQL都丢到数据库后,只给一个账号执行数据库的权限.
1.我们也可以不给与 权限
至于这二项,要给还是不给,暂时还不明白.
2.这个账号目前只能执行存储过程,不能执行SQL语句.
如下以下存储过程
DELIMITER $$USE `tymes`$$DROP PROCEDURE IF EXISTS `Prod_UPH_GetMAX`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `Prod_UPH_GetMAX`(IN para0 VARCHAR(2) -- 模式,IN para1 VARCHAR(30)-- 开始日期,IN para2 VARCHAR(30)-- 结束日期) SQL SECURITY DEFINER COMMENT 'GetMaxUPH' -- SQL SECURITY INVOKER/DEFINERBEGIN SELECT * FROM ( SELECT w.`TypeName` AS 产品 ,MAX(u.`UPH`) AS MAXUPH ,u.`ProdQTY` AS 产量 ,u.`SpentTime` AS 时间FROM `ns_product_uph` u INNER JOIN `ns_order_work` w ON (u.`MOKEY` = w.`uuidOrderWork`) WHERE u.`CREATE_DATE` BETWEEN para1 AND para2AND u.`IsUPH`='true'GROUP BY w.`TypeName` ASC) uph LIMIT 0,1000; END$$DELIMITER ;
解释一下这一句 SQL SECURITY INVOKER/DEFINER
SQL SECURITY INVOKER 以执行存储过程的实际用户执行存储过程,此时,因为此用户没有Select insert update dalete 所以最终则是失败
SQL SECURITY DEFINER 以创建存储过程的用户执行,一般情况下,此用户权限会开放Select insert update dalete 所以存储过程能成功执行
调用过程中发现一问题
SELECT privilege on mysql.proc to parse column types
意思很明显,就是说,没有查询mysql.proc表权限,奇怪的是我们,其实并不需求执行这个操作.此表是存储整个数据存储过程信息的地方.
查了一些资料显示,说是MYSQL官方JDBC驱动的问题.
所以,只好放弃.把这个表的查询权限也给予到此执行存储过程的用户.(要有相关权限)
GRANT SELECT ON `mysql`.`proc` TO 'webuser'@'192.168.1.%';
此时再执行存储过程,OK,没问题了.数据安全就好一点
1.此时,无法通过phpmyadmin登录
2.可以看到information_schema 表信息mysql.proc 表内容.可以看到项目表的存在过程信息,但看不到表信息.
SQL SECURITY DEFINER 如果此时还出现权限问题,请检查相关权限,首先是创建存储过程的用户是什么,权限是什么,建议(只开执行存储过程权限,创建临时表权限, (不知道是不是创建存储过程的账号开了就不用开?))大家可以试一下,性能.
SQL SECURITY INVOKER 很简单,就检查实际用户权限,不建议,除非.sql与存储过程结合,但权限却还要放开.
之前曾有一个问题就是,连接数据库时,提示无权限,检查后发现,返回的主机名称竟不是我电脑的,检查网络,本机都没找到问题,最后,把服务器重启后就正常了.
- MYSQL 执行数据库权限问题
- mysql执行存储过程权限的问题
- 远程连接mysql数据库权限问题
- mysql数据库远程登录权限的问题
- mysql 数据库权限问题,及解决方案
- mysql由于权限问题看不到用户数据库
- .net 执行mysql 数据库事务问题
- mysql 函数执行权限
- 执行数据库维护计划时,有服务器访问权限问题
- mysql 执行脚本中遇到到权限问题
- 执行 hive 权限问题
- Mysql 数据库权限导出
- mysql数据库权限
- MySQL数据库权限参考
- mysql数据库权限管理
- Linux下访问MySQL的数据库权限不够的问题
- 触发器、mysql权限问题、数据库的备份和恢复
- ubutun修改mysql数据库外部访问权限问题
- makefile文件的编写
- 创建树去掉后缀
- 为JTabbedPane添加缩略图
- MFC 静态编译
- 区分DML,DDL,DCL,DQL
- MYSQL 执行数据库权限问题
- 请问输出为什么是这样?
- CArchive类读写
- FreeVimager绿色版:带超多功能的轻量级图片浏览器
- spring 学习网站
- jQuery基础知识
- 未来的广告生态圈:看到即购买
- socket在windows下和linux下的区别
- 千山独行-一个人的创业路(连载六)