2.4 读写权限验证
只读不写或只写不读权限验证
-- 用户创建 CREATE USER 't_only_read_user'@'%'; CREATE USER 't_only_write_user'@'%'; -- 对指定的库或表的读取权限 GRANT SELECT_PRIV ON *.* TO 't_only_read_user'@'%'; -- 对指定的库或表的导入权限 GRANT LOAD_PRIV ON *.* TO 't_only_write_user'@'%';
三、优化配置
资源组方法是节点级别的资源隔离和限制。
而在资源组内,依然可能发生资源抢占问题;可以针对对单查询做资源限制功能
3.1 内存限制
-- 设置会话变量 exec_mem_limit。则之后该会话内(连接内)的所有查询都使用这个内存限制。 set exec_mem_limit=1G; -- 设置全局变量 exec_mem_limit。则之后所有新会话(新连接)的所有查询都使用这个内存限制。 set global exec_mem_limit=1G; -- 在 SQL 中设置变量 exec_mem_limit。则该变量仅影响这个 SQL。 select /*+ SET_VAR(exec_mem_limit=1G) */ id, name from tbl where xxx;
3.2 CPU限制
-- 设置会话变量 cpu_resource_limit。则之后该会话内(连接内)的所有查询都使用这个CPU限制。 set cpu_resource_limit = 2 -- 设置用户的属性 cpu_resource_limit,则所有该用户的查询情况都使用这个CPU限制。该属性的优先级高于会话变量 cpu_resource_limit set property for 'user1' 'cpu_resource_limit' = '3';
四、总结
- 1.可以对用户做到查询资源的物理隔离,写入不做资源隔离
- 2.可以对用户做到库表颗粒的权限控制参考用户账户管理