mysql - 授予对选定表的权限

标签 mysql privileges sql-grant

我有一个 MySQL 5.x 数据库,包含大约 100 个表。我想授予某些表的 SELECT 权限:

show tables from my_db like '%some_pattern%'; # select only tables

...以及其余表上的 SELECTINSERTUPDATEDELETE

我该怎么做?

最佳答案

尝试

SELECT CONCAT('GRANT SELECT ON schemaName.', TABLE_NAME, ' to ''username'';')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'schemaName'
  AND TABLE_NAME LIKE '%some_pattern%'

SELECT CONCAT('GRANT SELECT, INSERT, UPDATE, DELETE ON schemaName.', TABLE_NAME, ' to ''username'';')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'schemaName'
  AND TABLE_NAME NOT LIKE '%some_pattern%'

然后运行上面的语句,复制生成的sql并运行结果授予权限

关于mysql - 授予对选定表的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32458143/

相关文章:

mysql - UNION ALL -> ORDER BY 未按预期工作...?

mysqld_safe --skip-grant-tables 未在 IBM i (AS400/iseries) 中启动

mysql - 如何删除不存在的程序上的补助金?

database - Oracle 授予让步和副作用

php - WordPress 数据库报错 MySQL server has gone away for query

php - 更改选择取决于输入值

mysql - 执行 CREATE USER 后的默认 MySQL 用户权限

mysql - 如何授予用户远程访问mysql服务器的权限?

mysql - 编辑-MySQL。大型 MyISAM 表(4000 万条记录)的索引速度非常慢且磁盘上的大小很大

sql - 更新和选择