广告
返回顶部
首页 > 资讯 > 数据库 >mysql中怎么查询用户权限
  • 1168
分享到

mysql中怎么查询用户权限

2024-04-02 19:04:59 1168人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关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的权限。如下所示:

mysql> show grants for test;
+--------------------------------------------------------------------------------------------------------------+
| Grants for test@% |
+--------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT ON *.* TO 'test'@'%' IDENTIFIED BY PASSWord '*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29' |
+--------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select * from mysql.user where user='test'\G;
*************************** 1. row ***************************
Host: %
User: test
Password: *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29
Select_priv: Y
Insert_priv: Y
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
Create_tablespace_priv: N
ssl_type: 
ssl_cipher: 
x509_issuer: 
x509_subject: 
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string: 
password_expired: N
1 row in set (0.04 sec)
ERROR: 
No query specified
mysql>

mysql中怎么查询用户权限

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

mysql> drop user test;
Query OK, 0 rows affected (0.00 sec)
mysql> grant select,insert,update,delete on MyDB.* to test@'%' identified by 'test';
Query OK, 0 rows affected (0.01 sec)
mysql> 
mysql> select * from mysql.user where user='test'\G; --可以看到无任何授权。
mysql> select * from mysql.db where user='test'\G;
*************************** 1. row ***************************
Host: %
Db: MyDB
User: test
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: N
Drop_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Execute_priv: N
Event_priv: N
Trigger_priv: N
1 row in set (0.04 sec)
ERROR: 
No query specified
mysql> 
mysql> show grants for test;
+-----------------------------------------------------------------------------------------------------+
| Grants for test@% |
+-----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'%' IDENTIFIED BY PASSWORD '*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29' |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `MyDB`.* TO 'test'@'%' |
+-----------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql>

3:那么我们来创建一个测试账号test,授予表层级的权限。如下所示:

mysql> drop user test;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on MyDB.kkk to test@'%' identified by 'test';
Query OK, 0 rows affected (0.01 sec)
mysql> 
mysql> show grants for test;
+-----------------------------------------------------------------------------------------------------+
| Grants for test@% |
+-----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'%' IDENTIFIED BY PASSWORD '*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29' |
| GRANT ALL PRIVILEGES ON `MyDB`.`kkk` TO 'test'@'%' |
+-----------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> select * from mysql.tables_priv\G;
*************************** 1. row ***************************
Host: %
Db: MyDB
User: test
Table_name: kkk
Grantor: root@localhost
Timestamp: 0000-00-00 00:00:00
Table_priv: Select,Insert,Update,Delete,Create,Drop,References,Index,Alter,Create View,Show view,Trigger
Column_priv: 
1 row in set (0.01 sec)
ERROR: 
No query specified
mysql>

mysql中怎么查询用户权限

4:那么我们来创建一个测试账号test,授予列层级的权限。如下所示:

mysql> drop user test;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> grant select (id, col1) on MyDB.TEST1 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> 
mysql> select * from mysql.columns_priv;
+------+------+------+------------+-------------+---------------------+-------------+
| Host | Db | User | Table_name | Column_name | Timestamp | Column_priv |
+------+------+------+------------+-------------+---------------------+-------------+
| % | MyDB | test | TEST1 | id | 0000-00-00 00:00:00 | Select |
| % | MyDB | test | TEST1 | col1 | 0000-00-00 00:00:00 | Select |
+------+------+------+------------+-------------+---------------------+-------------+
2 rows in set (0.00 sec)
mysql> show grants for test;
+-----------------------------------------------------------------------------------------------------+
| Grants for test@% |
+-----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'%' IDENTIFIED BY PASSWORD '*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29' |
| GRANT SELECT (id, col1) ON `MyDB`.`TEST1` TO 'test'@'%' |
+-----------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql>

mysql中怎么查询用户权限

5:那么我们来创建一个测试账号test,授子程序层级的权限。如下所示:

mysql> DROP PROCEDURE IF EXISTS PRC_TEST;
Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER //
mysql> CREATE PROCEDURE PRC_TEST()
-> BEGIN
-> SELECT * FROM kkk;
-> END //
Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER ;
mysql> grant execute on procedure MyDB.PRC_TEST 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> 
mysql> show grants for test;
+-----------------------------------------------------------------------------------------------------+
| Grants for test@% |
+-----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'test'@'%' IDENTIFIED BY PASSWORD '*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29' |
| GRANT EXECUTE ON PROCEDURE `MyDB`.`prc_test` TO 'test'@'%' |
+-----------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> select * from mysql.procs_priv where User='test';
+------+------+------+--------------+--------------+----------------+-----------+---------------------+
| Host | Db | User | Routine_name | Routine_type | Grantor | Proc_priv | Timestamp |
+------+------+------+--------------+--------------+----------------+-----------+---------------------+
| % | MyDB | test | PRC_TEST | PROCEDURE | root@localhost | Execute | 0000-00-00 00:00:00 |
+------+------+------+--------------+--------------+----------------+-----------+---------------------+
1 row in set (0.00 sec)
mysql>

mysql中怎么查询用户权限

关于mysql中怎么查询用户权限就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: mysql中怎么查询用户权限

本文链接: https://www.lsjlt.com/news/55950.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql中怎么查询用户权限
    这篇文章将为大家详细讲解有关mysql中怎么查询用户权限,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。全局层级全局权限适用于一个给定服务器中的所有数据库。这...
    99+
    2022-10-18
  • 怎么在MySQL中查询用户权限
    怎么在MySQL中查询用户权限?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。介绍两种查看MySQL用户权限的两种方法1、 使用MySQL ...
    99+
    2022-10-18
  • oracle用户查询权限
    Oracle用户查询权限可以通过以下几种方式进行:1. 使用Oracle的系统视图查询用户权限:```sqlSELECT *...
    99+
    2023-08-22
    oracle
  • 查询用户权限 dba-role_privs
    我们都都知道在controlfile中记录着每一个archivelog的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的 controlfile中仍然记录着这些archi...
    99+
    2022-10-18
  • MySQL查询用户权限的方法总结
    介绍两种查看MySQL用户权限的两种方法 使用MySQL grants命令 mysql> show grants for username@localhost; +-------------------...
    99+
    2022-05-27
    MySQL 用户权限
  • oracle怎么查询用户对表的权限
    可以使用以下语句查询用户对表的权限:```sqlSELECT *FROM dba_tab_privsWHERE gr...
    99+
    2023-08-24
    oracle
  • oracle怎么查询用户权限和角色
    您可以通过以下的SQL语句来查询用户的权限和角色:1. 查询用户拥有的权限:```SELECT * FROM USER_SY...
    99+
    2023-08-31
    oracle
  • 查询oracle用户角色权限
    1.查看所有用户:   select * from dba_users;   select * ...
    99+
    2022-10-18
  • oracle用户权限如何查询
    要查询Oracle用户的权限,可以使用以下几种方法:1. 查询用户的系统权限:```sqlSELECT * FROM DBA...
    99+
    2023-08-23
    oracle
  • MySQL(99)MySQL查看用户权限
    MySQL查看用户权限 在 MySQL 中,可以通过查看 mysql.user 表中的数据记录来查看相应的用户权限,也可以使用 SHOW GRANTS 语句查询用户的权限。 mysql 数据库下的 user 表中存储着用户的基本权限,可以使...
    99+
    2023-09-03
    mysql 数据库
  • MySql设置指定用户数据库查看查询权限
    一、新建用户: 执行sql语句新建(推荐): INSERT INTO `mysql`.`user` ( `Host`, `User`, `Password`, `ssl_cipher`, `x509_i...
    99+
    2022-05-23
    MySql 设置 用户 数据库 权限
  • 如何查询oracle用户的权限
    查询oracle用户权限的方法有使用Oracle SQL Developer工具、使用系统视图查询和使用GRANT查询用户权限。详细介绍:1、Oracle SQL Developer是一个运行在桌面上的视化工具,可以轻松地查询数据库和管理对...
    99+
    2023-08-15
  • Oracle创建设置查询权限用户
    --普通用户test,需要创建查询用户(cxtest),授权test的部分表或试图查询权限 -- 使用 SYSTEM创建用户 create user cxtest   identified by cxtest   default tabl...
    99+
    2022-04-13
    Oracle创建设置查询权限用户
  • ubuntu中怎么查询文档权限
    本篇内容介绍了“ubuntu中怎么查询文档权限”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ubuntu查询文档权限的方法:对目录下的所有文...
    99+
    2023-07-04
  • 怎么查看Oracle用户权限
    这篇文章主要介绍“怎么查看Oracle用户权限”,在日常操作中,相信很多人在怎么查看Oracle用户权限问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么查看Oracle用户...
    99+
    2022-10-18
  • mysql查看用户权限的方法
    小编给大家分享一下mysql查看用户权限的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql查看用户权限的方法:1、查看MySQL某个用户的权限,语法为【show grants fo...
    99+
    2022-10-18
  • mysql查看用户的权限脚本
    1、安装mysql支持python包 yum -y install mysql-connector-python 2、查看MySQL 用户权限的Python脚本 vi py_priv.py #!/usr...
    99+
    2022-10-18
  • Linux系统中怎么查看用户权限
    这篇文章主要为大家分析了Linux系统中怎么查看用户权限的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统中怎么查看用户权限”的知识吧。Linux...
    99+
    2023-06-28
  • mysql怎么查看root权限
    在mysql中查看root用户权限的方法:1.命令行启动mysql服务;2.登录mysql;3.选择数据库;4.执行“show grants for root;”命令查看权限;在mysql中查看root用户权限的方法首先,在命令行中启动my...
    99+
    2022-10-10
  • mysql中怎么赋予用户各种权限
    这期内容当中小编将会给大家带来有关mysql中怎么赋予用户各种权限,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。mysql> grant 权限1,权限2,…权限n ...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作