【 TiDB 使用环境】测试
【 TiDB 版本】V6.5.4
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
把表全删了不就跟drop database一样吗,如果非要实现,只能对表单独赋权,参考:https://docs.pingcap.com/zh/tidb/stable/privilege-management#drop-database
1 个赞
目前发现revoke drop on test.* from ‘test_user’@‘%’ 发现会把test这个数据库里表的drop table权限也给回收了
数据库不能删除,但是有些表需要删除重建,所以需要有DROP TABLE权限
单表赋权太麻烦了,如果有几千张表这样一张一张的赋权也不太现实
可以动态SQL来生成grant语句
1 个赞
这个好像不行,只能回收drop
这种不要从数据库本身控制,通过上线审核工具来做吧,直连数据库还是危险
既然是重建,为什么不能alter,一定要drop再create呢
是的,drop权限粒度控制太大了,不够精细和灵活
比如,我有张表刚开始是设置了随机主键的聚簇表,现在要把随机主键去掉,alter就无法实现
1 个赞
这个应该由数据库去控制,而不是额外的第三方工具去实现
麻烦了
这样试试:
select concat('grant drop on test.',table_name,' to \'test_user\'\@\'%\';')
from information_schema.tables
where table_schema='test' and table_type='BASE TABLE';
1 个赞
这种单个的没有问题,但是目前来说TiDB的DROP的权限控制粒度太大,如果放开DROP权限,意味着DROP DATABASE 和 DROP TABLE都有了,可以删库跑路了,但是如果回收DROP权限,则DROP DATABASE 和 DROP TABLE都没了。
根据权限撤回即可了。
目前没有单独撤回DROP DATABASE权限的操作
这个问题,加强流程解决不了吗
drop database [table] 权限只有管理员有才对
业务初始化权限就不该授权drop