设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 服务器 > 安全 > 正文

MySQL如何查看用户授予的权限

发布时间:2020-12-31 01:38 所属栏目:53 来源:网络整理
导读:《MySQL如何查看用户授予的权限》要点: 本文介绍了MySQL如何查看用户授予的权限,希望对您有用。如果有疑问,可以联系我们。 导读:在MySQL中,如何查看一个用户被授予了那些权限呢? 授予用户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层

《MySQL如何查看用户授予的权限》要点:
本文介绍了MySQL如何查看用户授予的权限,希望对您有用。如果有疑问,可以联系我们。

导读:在MySQL中,如何查看一个用户被授予了那些权限呢? 授予用户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层级别权限、子... 在MySQL中,如何查看一个用户被授予了那些权限呢? 授予用户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层级别权限、子程序层级权限.具体分类如下:


全局层级

全局权限适用于一个给定服务器中的所有数据库.这些权限存储在mysql.user表中.GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤销全局权限.

数据库层级

数据库权限适用于一个给定数据库中的所有目标.这些权限存储在mysql.db和mysql.host表中.GRANT ALL ON db_name.*和REVOKE ALL ON db_name.*只授予和撤销数据库权限.
???
表层级

表权限适用于一个给定表中的所有列.这些权限存储在mysql.tables_priv表中.GRANT ALL ON db_name.tbl_name和REVOKE ALL ON db_name.tbl_name只授予和撤销表权限.

列层级

列权限适用于一个给定表中的单一列.这些权限存储在mysql.columns_priv表中.当使用REVOKE时,您必须指定与被授权列相同的列.

子程序层级

CREATE ROUTINE,ALTER ROUTINE,EXECUTE和GRANT权限适用于已存储的子程序.这些权限可以被授予为全局层级和数据库层级.而且,除了CREATE ROUTINE外,这些权限可以被授予为子程序层级,并存储在mysql.procs_priv表中.

1:那么我们来创建一个测试账号test,授予全局层级的权限.如下所示:

mysql> grant select,insert on *.* to test@'%' identified by 'test';
Query OK,0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK,0 rows affected (0.00 sec)

mysql>?

那么可以用下面两种方式查询授予test的权限.如下所示:

  1. mysql>?show?grants?for?test;?
  2. +--------------------------------------------------------------------------------------------------------------+?
  3. |?Grants?for?test@%????????????????????????????????????????????????????????????????????????????????????????????|?
  4. +--------------------------------------------------------------------------------------------------------------+?
  5. |?GRANT?SELECT,?INSERT?ON?*.*?TO?'test'@'%'?IDENTIFIED?BY?PASSWORD?'*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29'?|?
  6. +--------------------------------------------------------------------------------------------------------------+?
  7. 1?row?in?set?(0.00?sec)?
  8. ??
  9. mysql>?select?*?from?mysql.user?where?user='test'\G;?
  10. ***************************?1.?row?***************************?
  11. ??????????????????Host:?%?
  12. ??????????????????User:?test?
  13. ??????????????Password:?*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29?
  14. ???????????Select_priv:?Y?
  15. ???????????Insert_priv:?Y?
  16. ???????????Update_priv:?N?
  17. ???????????Delete_priv:?N?
  18. ???????????Create_priv:?N?
  19. ?????????????Drop_priv:?N?
  20. ???????????Reload_priv:?N?
  21. ?????????Shutdown_priv:?N?
  22. ??????????Process_priv:?N?
  23. ?????????????File_priv:?N?
  24. ????????????Grant_priv:?N?
  25. ???????References_priv:?N?
  26. ????????????Index_priv:?N?
  27. ????????????Alter_priv:?N?
  28. ??????????Show_db_priv:?N?
  29. ????????????Super_priv:?N?
  30. ?Create_tmp_table_priv:?N?
  31. ??????Lock_tables_priv:?N?
  32. ??????????Execute_priv:?N?
  33. ???????Repl_slave_priv:?N?
  34. ??????Repl_client_priv:?N?
  35. ??????Create_view_priv:?N?
  36. ????????Show_view_priv:?N?
  37. ???Create_routine_priv:?N?
  38. ????Alter_routine_priv:?N?
  39. ??????Create_user_priv:?N?
  40. ????????????Event_priv:?N?
  41. ??????????Trigger_priv:?N?
  42. Create_tablespace_priv:?N?
  43. ??????????????ssl_type:??
  44. ????????????ssl_cipher:??
  45. ???????????x509_issuer:??
  46. ??????????x509_subject:??
  47. ?????????max_questions:?0?
  48. ???????????max_updates:?0?
  49. ???????max_connections:?0?
  50. ??max_user_connections:?0?
  51. ????????????????plugin:?mysql_native_password?
  52. ?authentication_string:??
  53. ??????password_expired:?N?
  54. 1?row?in?set?(0.04?sec)?
  55. ??
  56. ERROR:??
  57. No?query?specified?
  58. ??
  59. mysql>??

MySQL如何查看用户授予的权限




2:那么我们来创建一个测试账号test,授予数据库层级的权限.如下所示:
?

  1. mysql>?drop?user?test;?
  2. Query?OK,?0?rows?affected?(0.00?sec)?
  3. ??
  4. mysql>?grant?select,insert,update,delete?on?MyDB.*?to?test@'%'?identified?by?'test';?
  5. Query?OK,?0?rows?affected?(0.01?sec)?
  6. ??
  7. mysql>??
  8. ??
  9. mysql>?select?*?from?mysql.user?where?user='test'\G;?--可以看到无任何授权.?
  10. mysql>?select?*?from?mysql.db?where?user='test'\G;?
  11. ***************************?1.?row?***************************?
  12. ?????????????????Host:?%?
  13. ???????????????????Db:?MyDB?
  14. ?????????????????User:?test?
  15. ??????????Select_priv:?Y?
  16. ??????????Insert_priv:?Y?
  17. ??????????Update_priv:?Y?
  18. ??????????Delete_priv:?Y?
  19. ??????????Create_priv:?N?
  20. ????????????Drop_priv:?N?
  21. ???????????Grant_priv:?N?
  22. ??????References_priv:?N?
  23. ???????????Index_priv:?N?
  24. ???????????Alter_priv:?N?
  25. Create_tmp_table_priv:?N?
  26. ?????Lock_tables_priv:?N?
  27. ?????Create_view_priv:?N?
  28. ???????Show_view_priv:?N?
  29. ??Create_routine_priv:?N?
  30. ???Alter_routine_priv:?N?
  31. ?????????Execute_priv:?N?
  32. ???????????Event_priv:?N?
  33. ?????????Trigger_priv:?N?
  34. 1?row?in?set?(0.04?sec)?
  35. ??
  36. ERROR:??
  37. No?query?specified?
  38. ??
  39. mysql>??
  40. mysql>?show?grants?for?test;?
  41. +-----------------------------------------------------------------------------------------------------+?
  42. |?Grants?for?test@%???????????????????????????????????????????????????????????????????????????????????|?
  43. +-----------------------------------------------------------------------------------------------------+?
  44. |?GRANT?USAGE?ON?*.*?TO?'test'@'%'?IDENTIFIED?BY?PASSWORD?'*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29'?|?
  45. |?GRANT?SELECT,?INSERT,?UPDATE,?DELETE?ON?`MyDB`.*?TO?'test'@'%'??????????????????????????????????????|?
  46. +-----------------------------------------------------------------------------------------------------+?
  47. 2?rows?in?set?(0.00?sec)?
  48. ??
  49. mysql>??

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读