MySQL数据库下用户及用户权限配置
问题:使用某大腿写的远程工具管理Mysql数据库时发现所有数据能正常显示,但是无法进行删除、修改等操作。
思路:可以远程读取到数据库里的信息,说明当前主机可以远程连接数据库。却无法进行删除、修改这些操作,说明某些权限并未赋予当前远程用户。
解决方法:
查看当前用户权限
> show grants for username
显示当前用户下的权限为:select,insert,update,delete
GRANT USAGE ON *.* TO 'username'@'host' IDENTIFIED BY PASSWORD '*BB318072E265C419B3E1E19A4DAD1FA969B9B4D4' //只可以在本地登陆的 不能操作的用户
GRANT SELECT, INSERT, UPDATE, DELETE ON `dbName`.* TO 'usename'@'host' //此用户拥有select/insert/update/delelte权限
这样看来,应该是具备删除、修改这些权限的,可是在远程工具上却不能进行操作。
仔细排查后,发现大腿写的这个工具对数据库的操作基本上都是通过函数执行的,我这个用户的权限里并未赋予存储过程、存储函数的相关权限,当然就不能进行相关操作了
于是,给用户添加存储过程及存储函数权限
GRANT DELETE, INDEX, EXECUTE, CREATE ROUTINE, ALTER ROUTINE ON `dbName`.* TO 'username'@'host'
查看用户权限为
GRANT USAGE ON *.* TO 'username'@'host' IDENTIFIED BY PASSWORD '*938D2D224D12DAD427AB953B931EA6DF0CF0656A'
GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, EXECUTE, CREATE ROUTINE, ALTER ROUTINE ON `dbName`.* TO 'username'@'host'
再使用远程工具,可正确使用
-----------------------------------------------------------------------------------------------------
附:导出数据库自定义函数及存储过程
-ntd表示导出存储过程,-R表示导出函数
mysqldump -uroot -ntd -R dbName > dbName.sql
发现导入出现错误信息
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
错误信息1481,当导入自定义函数时相当于创建自定义函数到数据库中,但是因为有一个安全参数没有开启,log_bin_trust_function_creators 默认为0(即OFF),
是不允许function的同步的(也就是说不允许创建函数),开启这个参数,就可以创建成功了。
查看log_bin_trust_function_creators值
> show variables like "%func%"
--------------------------------------
|Variable_name |Value|
--------------------------------|-----
|log_bin_trust_function_creators| OFF |
--------------------------------------
value为OFF,说明是不允许创建函数,修改这个值,即可
> set global log_bin_trust_function_creators=1; >show variables like "%func%"
--------------------------------------
|Variable_name |Value|
--------------------------------|-----
|log_bin_trust_function_creators| ON |
--------------------------------------
注意:导入完成后记得把值设回0(即OFF),具体原因就不细说了。
MySQL数据库下用户及用户权限配置的更多相关文章
- Ansible 从MySQL数据库添加或删除用户
mysql_user - 从MySQL数据库添加或删除用户. 概要 要求(在执行模块的主机上) 选项 例子 笔记 状态 支持 概要 从MySQL数据库添加或删除用户. 要求(在执行模块的主机上) My ...
- 真分布式SolrCloud+Zookeeper+tomcat搭建、索引Mysql数据库、IK中文分词器配置以及web项目中solr的应用(1)
版权声明:本文为博主原创文章,转载请注明本文地址.http://www.cnblogs.com/o0Iris0o/p/5813856.html 内容介绍: 真分布式SolrCloud+Zookeepe ...
- 利用navcat为mysql数据库单独的表赋权限及表结构同步
为mysql数据库单独的表赋权限 场景:考勤系统需要拿OA数据库td_oa中的flow_run和flow_run_data表中的数据做考勤计算 考勤系统只需要读取这两张表的数据,所以只需要开通一个单独 ...
- MySQL数据库(五)--用户管理、pymysql模块
一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv > columns_pri ...
- MySQL数据库(五)—— 用户管理、pymysql模块
用户权限管理.pymysql模块 一.用户管理(权限管理) 在MySQL中自带的mysql数据库中有4个表用于用户管理的 # 优先级从高到低 user > db > tables_priv ...
- 【odoo14】【用户侧】权限配置
以下内容仅适用于odoo的客户,不适用于开发人员. 下文介绍中涉及的概念及UI均是在odoo14社区版中进行. 目录 一. odoo中的对象 二. 权限控制 2.1 实现原理 2.2 UI方式实现权限 ...
- DAO设计模式 -- 使用数据库连接类连接MySql数据库并实现添加用户
1. DAO简介 DAO设计模式是属于J2EE数据库层的操作,使用DAO设计模式可以简化大量代码,增强程序的可移植性. 2. DAO各部分详解 DAO设计模式包括5个重要的部分,分别为数据 ...
- azkaban用户管理及权限配置
参考:https://blog.csdn.net/zlx510tsde/article/details/52287931 官网:https://azkaban.readthedocs.io/en/la ...
- mysql数据库,创建只读用户
数据库当前只有一个root用户,需要创建一个只读帐户给其他使用,因使用者是使用数据库管理工具在其他主机访问,所以还要开户远程访问权限,操作步骤如下. 1. 使用现有的root用户登录到Mysql. m ...
随机推荐
- 一行命令搞定VS2012无法安装cocos2d-x-2.1.4及创建跨平台项目(二)
转自:http://blog.csdn.net/yangjingui/article/details/9418843 由于上次发了一个比较二的方法来解决VS2012无法安装cocos2d-x-2.1. ...
- C#“同步调用”、“异步调用”、“异步回调”
本文将主要通过“同步调用”.“异步调用”.“异步回调”三个示例来讲解在用委托执行同一个“加法类”的时候的的区别和利弊. 首先,通过代码定义一个委托和下面三个示例将要调用的方法: ); //模拟该方法运 ...
- 548 - Tree (UVa OJ)
Tree You are to determine the value of the leaf node in a given binary tree that is the terminal nod ...
- L - Fabled Rooks(中途相遇法和贪心)
Problem F: Fabled Rooks We would like to place n rooks, 1 ≤ n ≤ 5000, on a n×n board subject to the ...
- Android小项目之九 两种上下文的区别
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- Oracle基础(五) 权限管理
一.数据库权限分类 权限是指用户对某个功能是否具有执行的权利.在Oracle中,权限分为系统权限和对象权限. 1.系统权限 系统规定用户使用数据库的权限.例如创建表空间,创建表,删除表的权利.这些都属 ...
- 05. 取SQL分组中的某几行数据
对表中数据分组,有时只需要某列的聚合值:有时却需要返回整行数据,常用的方法有:子查询.ROW_NUMBER.APPLY,总体感觉还是ROW_NUMBER比较直观.测试数据: if OBJECT_ID( ...
- IQueryable与IEnumberable的区别
IEnumerable接口 公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代.也就是说:实现了此接口的object,就可以直接使用foreach遍历此object: IQueryable 接口 ...
- oracle 数据导入导出命令
1.数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 exp system/manager@TEST file=d:\daoc ...
- photoSlider-原生js移动开发轮播图、相册滑动插件
详细内容请点击 在线预览 立即下载 使用方法: 分别引用css文件和js文件 如: <link rel="stylesheet" type="text/css& ...