mysql - MySQL 角色在 Delphi 应用程序中不起作用
问题描述
我将 MariaDB10 与 DBForge 一起使用并创建了一个 Delphi 项目,我创建了一个角色来管理权限,但效果不佳。
1 - 在 DbForge 面板上创建一个具有过程权限的角色myprocedure
2 - 使用代码在我的 Delphi 项目中添加 Tmyqueryset default role myrole
3 - 添加一个afterConnect
调用创建的查询的过程
4 - 设置disconnectedMode = true
MyConnection 选项
有时这个过程有效,但大多数时候我收到一个错误:Acess denied to user XX for routine myprocedure
这发生在我尝试控制权限的例程、函数和表中
除此之外,每次我授予角色权限并在编辑程序后,该角色都会失去我之前授予的权限
Obs:角色在 DbForge 面板上正常工作只是当我试图把它放在 Delphi 上时
解决方案
如果用户还没有访问该角色的权限,那么他们正在运行set default role myrole
并不会将其授予他们。
SET DEFAULT ROLE 需要以下权限:
为另一个用户设置默认角色需要全局 CREATE USER 权限,或者 mysql.default_roles 系统表的 UPDATE 权限。
为自己设置默认角色不需要特殊权限,只要您希望作为默认角色的角色已授予您。
推荐阅读
- css - 在overflow-y 上创建一个div scollable,但同时overflow-x 应该是完全可见的
- powershell - Powershell - 将运行 docker 命令(例如 docker ps)的输出获取到变量中
- jenkins - Jenkins-JIRA Zephyr 集成问题:从 Jenkins 到 JIRA 测试用例的映射不正确
- asp.net - MassTransit 无法处理作业
- vue.js - Vue-multiselect在使用单选(对象)时防止选择任何项目
- laravel - 如何获得 laravel 的 2checkout 沙盒?
- android-studio - 我是 ubuntu 上的 android 开发人员,当我尝试制作 AVD 时,它说 /dev/kvm not found ,我应该如何修复它
- join - QlikSense 帮助 - 星型架构/联接或 ApplyMap
- android - MediaStore.ACTION_VIDEO_CAPTURE 未将完整字节写入文件
- conda - 如何解决安装 RosettaFold 期间出现的 UnsatisfiableError?