查看 mysql 系统里面的用户的权限,可以这样 ...
select user, select_priv from mysql.user;
这里的 select_priv ,表示的就是,用户是否有 select 权限,也就是从数据库里选择数据的权限。
你会看到,root 用户是有这个权限的,但是我们之前创建的 wanghao 这个用户没有这个权限,因为这栏里显示的是 n ,表示没有这个权限。
使用这个方法,我们查询出来的权限是在全局范围内的权限。也就是,在这里如果显示用户有 select 权限,表示他在所有的数据库里都有这个权限。
如果我们只想查看用户在某个特定的数据库上的权限。可以去看一下 mysql 这个数据库里的 db 这个表。
select user, db, select_priv from mysql.db;
在这里,我们要显示的是 db 这个表里的 user ,用户名,还有 db ,表示在特定的数据库 ... 还有 select_priv ,表示 select 这个权限 ...
你会看到 wanghao 这个用户,在 movietalk 这个数据库上面,拥有 select 的权限。
或者,我们也可以使用 show grants 去查看一下用户拥有的权限。
show grants for wanghao@localhost;
查看一下 wanghao 被授予的权限。
GRANT USAGE ON *.* TO 'wanghao'@'localhost' IDENTIFIED BY PASSWORD '*911FE98EE7894C073B44C0BD522EDA5E400A9FF4'
GRANT ALL PRIVILEGES ON `wanghao`.* TO 'wanghao'@'localhost'
下面这行 ... grant all privileges on movietalk.* ... 表示,wanghao 在 movietalk 这个数据库的所有的表里,拥有所有的权限。