// 先撤销用户对数据库的所有权限 REVOKE ALL PRIVILEGES ON *.* FROM 'zhiqiang'@'%'; //授予zhiqiang用户对a、b数据库的全部权限,包括DDL和DML权限 GRANT ALL PRIVILEGES ON a.* TO 'zhiqiang'@'%'; GRANT ALL PRIVILEGES ON b.* TO 'zhiqiang'@'%'; //最后授权查询mysql.user表的权限,用于确保用户可以验证自己的权限设置 GRANT SELECT ON mysql.user TO 'zhiqiang'@'%'; //显示的权限设置情况确认是否符合要求 SHOW GRANTS FOR 'zhiqiang'@'%'; //刷新权限 flush privileges;
场景2:将a和b 给zhiqiang用户DDL权限
1 2 3 4 5 6 7 8 9 10 11
//撤销zhiqiang原有所有数据库权限 REVOKE ALL PRIVILEGES ON *.* FROM 'zhiqiang'@'%'; //针对a、b数据库授权常见的DDL操作权限如ALTER、CREATE、DROP等 GRANT CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON a.* TO 'zhiqiang'@'%'; GRANT CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON b.* TO 'zhiqiang'@'%'; //最后再授权查询mysql.user表权限以方便权限验证 GRANT SELECT ON mysql.user TO 'zhiqiang'@'%'; //显示的权限设置情况确认是否符合要求 SHOW GRANTS FOR 'zhiqiang'@'%'; //刷新权限 flush privileges;
场景3:将a和b 给zhiqiang用户DML权限
1 2 3 4 5 6 7 8 9 10 11
//撤销zhiqiang用户所有数据库的权限 REVOKE ALL PRIVILEGES ON *.* FROM 'zhiqiang'@'%'; //授予zhiqiang对a、b数据库的SELECT/INSERT/UPDATE/DELETE权限 GRANT SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, SHOW VIEW, EVENT, TRIGGER ON a.* TO 'zhiqiang'@'%'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, SHOW VIEW, EVENT, TRIGGER ON b.* TO 'zhiqiang'@'%'; //授权查询mysql.user表权限用于权限验证 GRANT SELECT ON mysql.user TO 'zhiqiang'@'%'; //显示的权限设置情况确认是否符合要求 SHOW GRANTS FOR 'zhiqiang'@'%'; //刷新权限 flush privileges;
场景4:将a和b给zhiqiang用户只读权限
1 2 3 4 5 6 7 8 9 10 11
//撤销zhiqiang所有数据库权限 REVOKE ALL PRIVILEGES ON *.* FROM 'zhiqiang'@'%'; //授予zhiqiang用户对a、b数据库的SELECT, SHOW VIEW, EVENT, TRIGGER查询权限 GRANT SELECT, LOCK TABLES, SHOW VIEW ON a.* TO 'zhiqiang'@'%'; GRANT SELECT, LOCK TABLES, SHOW VIEW ON b.* TO 'zhiqiang'@'%'; //授权查询mysql.user表用于权限验证 GRANT SELECT ON mysql.user TO 'zhiqiang'@'%'; //显示的权限设置情况确认是否符合要求 SHOW GRANTS FOR 'zhiqiang'@'%'; //刷新权限 flush privileges;
场景5: 给当前所有数据库给zhiqiang用户子只读权限
1 2 3 4 5 6
//生成只读的sql语句 SELECT CONCAT('GRANT SELECT, LOCK TABLES, SHOW VIEW ON ', schema_name, '.* TO ''zhiqiang''@''%'';') as sqls FROM information_schema.schemata; //按需执行返回的sqls ..... //刷新权限 flush privileges;