【问题标题】:Grant privileges on selected tables授予选定表的权限
【发布时间】:2015-09-08 12:41:06
【问题描述】:

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

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

...和SELECTINSERTUPDATEDELETE 在其余的桌子上。

我该怎么做?

【问题讨论】:

    标签: mysql privileges sql-grant


    【解决方案1】:

    试试

    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并运行生成的权限授予权限

    【讨论】:

      【解决方案2】:

      不可能通过单个查询向多个表授予权限。您需要对每个表进行查询。您可以尝试使用Adminer 或phpMyAdmin 等管理工具。

      【讨论】:

        猜你喜欢
        • 2017-07-06
        • 1970-01-01
        • 1970-01-01
        • 2016-08-24
        • 2015-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多