mysql 如何查看该数据库用户具有哪些权限?

grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
如何查询关于phplampDB这个语句关于phplampDB的结果?

1、use mysql

2、SELECT * FROM users 

就可以看到所有的使用者权限

有关db的数据是记录在Db(大小写要注意)这个数据表中,所以只要呼叫出Db的资料 SELECT * FROM Db 就可以看到你要的答案。

或者可以用:

SELECT * FROM Db WHERE Db='phplampDB'找出你要的答案

扩展资料:

授予MySQL用户权限的语句

show grants for 你的用户

比如:show grants for root@'localhost';

Grant 用法:

GRANT USAGE ON *.* TO 'discuz'@'localhost' IDENTIFIED BY PASSWORD 

'*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB';

GRANT ALL PRIVILEGES ON `discuz`.* TO 'discuz'@'localhost';

建立一个只可以在本地登陆的 不能操作的用用户名 discuz 密码为 ***** 已经加密了的
然后第二句的意思是 ,给这个discuz用户操作discuz数据库的所有权限

使用GRANT

GRANT命令用来建立新用户,指定用户口令并增加用户权限。其格式如下:

mysql> GRANT <privileges> ON <what>

-> TO <user> [IDENTIFIED BY "<password>"]

-> [WITH GRANT OPTION];

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-18
MySQL中所有使用者的权限是记录在mysql这个数据库的users资料表中
所以你只要先use mysql
再SELECT * FROM users 你可以看到所有的使用者权限
有关db的数据是记录在Db(大小写要注意)这个数据表中
所以只要呼叫出Db的资料 SELECT * FROM Db 就可以看到你要的答案
或者你可以用 SELECT * FROM Db WHERE Db='phplampDB'找出你要的答案追问

users里面有权限表,db表里面也有权限列表,有什么区别啊?而起db表里面怎么只有test用户而已啊?

追答

基本上users的权限表是制定一个帐号在整个MySQL的权限
而Db的权限表是一个users在某个database的权限
举个例子...我们常这样做
让一个帐号在users下完全没权限
但是在Db下让他在某个资料库有完全的权限
这样可以让每一个资料库的使用帐号完全区分开来
避免一个帐号的权限过大可以减少错误的损害范围
也比较能实现到多人操作的环境

本回答被提问者和网友采纳
第2个回答  2015-01-18
grant all privileges on 数据库.
第3个回答  2020-05-25

背景

在了解动态权限之前,我们先回顾下 MySQL 的权限列表。

权限列表大体分为服务级别和表级别,列级别以及大而广的角色(也是MySQL 8.0 新增)存储程序等权限。我们看到有一个特殊的 SUPER 权限,可以做好多个操作。比如 SET 变量,在从机重新指定相关主机信息以及清理二进制日志等。那这里可以看到,SUPER 有点太过强大,导致了仅仅想实现子权限变得十分困难,比如用户只能 SET 变量,其他的都不想要。那么 MySQL 8.0 之前没法实现,权限的细分不够明确,容易让非法用户钻空子。

那么 MySQL 8.0 把权限细分为静态权限和动态权限,下面我画了两张详细的区分图,图 1 为静态权限,图 2 为动态权限。

图 1- MySQL 静态权限的权限管理图

图 2-动态权限图

那我们看到其实动态权限就是对 SUPER 权限的细分。 SUPER 权限在未来将会被废弃掉。

我们来看个简单的例子,

比如, 用户 'ytt2@localhost', 有 SUPER 权限。

mysql> show grants for ytt2@'localhost';+---------------------------------------------------------------------------------+| Grants for ytt2@localhost                                                       |+---------------------------------------------------------------------------------+| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER, SUPER ON *.* TO ytt2@localhost |+---------------------------------------------------------------------------------+1 row in set (0.00 sec)

但是现在我只想这个用户有 SUPER 的子集,设置变量的权限。那么单独给这个用户赋予两个能设置系统变量的动态权限,完了把 SUPER 给拿掉。

mysql> grant session_variables_admin,system_variables_admin on *.* to ytt2@'localhost';Query OK, 0 rows affected (0.03 sec)mysql> revoke super on *.* from ytt2@'localhost';Query OK, 0 rows affected, 1 warning (0.02 sec)

我们看到这个 WARNINGS 提示 SUPER 已经废弃了。

    mysql> show warnings;

    +---------+------+----------------------------------------------+

    | Level   | Code | Message                                      |

    +---------+------+----------------------------------------------+

    | Warning | 1287 | The SUPER privilege identifier is deprecated |

    +---------+------+----------------------------------------------+

    1 row in set (0.00 sec)`

    mysql> show grants for ytt2@'localhost';

    +-----------------------------------------------------------------------------------+

    | Grants for ytt2@localhost                                                         |

    +-----------------------------------------------------------------------------------+

    | GRANT INSERT, UPDATE, DELETE, CREATE, ALTER ON *.* TO ytt2@localhost          |

    | GRANT SESSION_VARIABLES_ADMIN,SYSTEM_VARIABLES_ADMIN ON *.* TO ytt2@localhost |

    +-----------------------------------------------------------------------------------+

    2 rows in set (0.00 sec)

    当然图 2 上还有其它的动态权限,这里就不做特别说明了。