MySQL 简单权限控制(授予某个用户执行某一个存储过程的权限)

 

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用户管理:添加用户、授权、删除用户

MySQL | Grant / Revoke Privileges

MySQL权限详解

MySQL GRANT语句简介

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章