MySQL使用grant管理用户权限

当成功创建用户后,几乎无法执行任何操作,需要为该用户分配适当的访问权限。在 mysql 中可以使用 grant来添加或删除用户权限。当用户拥有grant权限时就可以执行grant语句。

1、查看用户权限

查看 test 用户账号的权限

show grants for 'test'@'localhost';

运行结果:

+----------------------------------------------+
| Grants for test@localhost                |
+----------------------------------------------+
| GRANT USAGE ON *.* TO `test`@`localhost` |
+----------------------------------------------+

USAGE ON *.* 表示没有该用户对任何数据库或表都没有权限。默认情况下,当新用户创建时,它没有权限。

2、添加用户权限

添加权限语法:

grant priv_type
on privilege_level
to user
[with with_option [with_option]...]
  • priv_type 参数表示权限类型,如:select、delete、create、all……
  • privilege_level 参数表示特权应用的级别,如:MySQL支持全局(*.*),数据库(database.*),表(database.table)和列级别。
  • user 参数表示用户账户,如:‘test’@‘localhost’
  • with 可选其他权限字段:
    • GRANT OPTION:被授权的用户可以将这些权限赋予给别的用户;
    • MAX_QUERIES_PER_HOUR count:设置每个小时可以允许执行 count 次查询;
    • MAX_UPDATES_PER_HOUR count:设置每个小时可以允许执行 count 次更新;
    • MAX_CONNECTIONS_PER_HOUR count:设置每小时可以建立 count 个连接;
    • MAX_USER_CONNECTIONS count:设置单个用户可以同时具有的 count 个连接。
2.4、权限类型说明
2.4.1、授予数据库权限时,priv_type 可以指定值:
权限名称对应user表中的字段说明
selectSelect_priv表示授予用户可以使用 select 语句访问特定数据库中所有表和视图的权限。
insertInsert_priv表示授予用户可以使用 insert 语句向特定数据库中所有表添加数据行的权限。
deleteDelete_priv表示授予用户可以使用 delete 语句删除特定数据库中所有表的数据行的权限。
updateUpdate_priv表示授予用户可以使用 update 语句更新特定数据库中所有数据表的值的权限。
referencesReferences_priv表示授予用户可以创建指向特定的数据库中的表外键的权限。
createCreate_priv表示授权用户可以使用 create table 语句在特定数据库中创建新表的权限。
alterAlter_priv表示授予用户可以使用 alter table 语句修改特定数据库中所有数据表的权限。
show viewShow_view_priv表示授予用户可以查看特定数据库中已有视图的视图定义的权限。
create routineCreate_routine_priv表示授予用户可以为特定的数据库创建存储过程和存储函数的权限。
alter routineAlter_routine_priv表示授予用户可以更新和删除数据库中已有的存储过程和存储函数的权限。
indexIndex_priv表示授予用户可以在特定数据库中的所有数据表上定义和删除索引的权限。
dropDrop_priv表示授予用户可以删除特定数据库中所有表和视图的权限。
create temporary tablesCreate_tmp_table_priv表示授予用户可以在特定数据库中创建临时表的权限。
create viewCreate_view_priv表示授予用户可以在特定数据库中创建新的视图的权限。
excute routineExecute_priv表示授予用户可以调用特定数据库的存储过程和存储函数的权限。
lock tablesLock_tables_priv表示授予用户可以锁定特定数据库的已有数据表的权限。
allSuper_priv表示以上所有权限/超级权限
2.4.2、授予表权限时,priv_type 可以指定值:
权限名称对应user表中的字段说明
selectSelect_priv授予用户可以使用 select 语句进行访问特定表的权限
insertInsert_priv授予用户可以使用 insert 语句向一个特定表中添加数据行的权限
deleteDelete_priv授予用户可以使用 delete 语句从一个特定表中删除数据行的权限
dropDrop_priv授予用户可以删除数据表的权限
updateUpdate_priv授予用户可以使用 update 语句更新特定数据表的权限
alterAlter_priv授予用户可以使用 alter table 语句修改数据表的权限
referencesReferences_priv授予用户可以创建一个外键来参照特定数据表的权限
createCreate_priv授予用户可以使用特定的名字创建一个数据表的权限
indexIndex_priv授予用户可以在表上定义索引的权限
allSuper_priv所有的权限名

例:给 test 用户添加 people 数据库 student 表的所有权限:

grant all on person.student to 'test'@'localhost';
3、删除用户权限

语法:

revoke priv_type
on privilege_level
from user
  • priv_type 参数表示权限类型,如:select、delete、create、all……
  • privilege_level 参数表示特权应用的级别,如:MySQL支持全局(*.*),数据库(database.*),表(database.table)和列级别。
  • user 参数表示用户账户,如:‘test’@‘localhost’

例:删除 test 用户向 “people 数据库 student” 表添加数据的权限

revoke insert on people.student from 'test'@'localhost';

该文章亦发表在个人网站,欢迎访问收藏:
网站链接:www.bitsof.cn
本文链接:MySQL使用grant管理用户权限 - BitsOf

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值