1. 查看某个用户的权限:
假设我有的MySQL数据库只有一个用户,名为root
- 列出所有用户:
select concat('user:''',user,'''@''',host,''',') as quary from mysql.user;
或者更直接的写法:
select user,host from mysql.user;
示例结果:
+--------------+-----------+
| user | host |
+--------------+-----------+
| root | localhost |
+--------------+-----------+
- 查看某个用户的权限:
show grants for root@'localhost';
示例结果:
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
2. 创建一个新用户,名为 myuser , 密码为123456
create user 'myuser' identified by '123456';
3.给予这个用户bd_json表的所有权限:
grant all privileges on my_db.bd_json to myuser@'%' identified by '123456';
4、给予这个用户bd_data表的create update select权限
grant create,update,select on my_db.bd_data to myuser@'%' identified by '123456';
常用的权限有:
all privileges:所有权限。
select:读取权限。
delete:删除权限。
update:更新权限。
create:创建权限。
drop:删除数据库、数据表权限
5 查看某个用户的权限
SHOW GRANTS FOR 'testuser' @'%';
6 移除用户权限
REVOKE USAGE ON *.* FROM 'testuser'@'%';
REVOKE ALL PRIVILEGES ON `test_db`.* FROM 'testuser'@'%';
7 授予用户在某个数据库上执行所有存储过程的权限
GRANT EXECUTE ON `test_db`.* TO 'testuser'@'%';
8 授予某个用户执行某个存储过程的权限
GRANT EXECUTE ON PROCEDURE `procedure_name` TO 'testuser'@'%'
10 刷新权限
FLUSH PRIVILEGES;
参考文章:
MySQL | Grant / Revoke Privileges