mysql用户及权限(create,grant,revoke语句)

今天,我们来了解一下mysql的默认权限,以及权限的分类,如何创建用户,给用户授权,以及废除用户权限
了解mysql默认的用户
当全新的MySQL数据库安装完毕后,系统就为我们默认地创建了几个用户:管理员用户root以及匿名用户。通过查看名为mysql的系统数据库中的user表,可以看到所有的用户名及其全局权限(Global Privileges)
mysql> select user,host from mysql.user;
±--------------±----------+
| user | host |
±--------------±----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
±--------------±----------+
6 rows in set (0.00 sec)

mysql>
权限分类
mysql用户及权限(create,grant,revoke语句)_第1张图片
mysql用户及权限(create,grant,revoke语句)_第2张图片
mysql用户及权限(create,grant,revoke语句)_第3张图片
mysql用户及权限(create,grant,revoke语句)_第4张图片
创建用户
mysql用户及权限(create,grant,revoke语句)_第5张图片
示例:创建用户u1可以可以从任意主机登录
create user ‘u1’@’%’ identified by ‘密码’;

给用户授权
grant语句
grant 权限操作分类 on 数据库作用范围 to 某个用户

数据库作用范围权限分类
1、全局权限:
作用在mysql服务的实例下所有数据库
全局权限记录到mysql.user表中
2、数据库权限:
作用在某些特定数据库
db_name.* db_name数据库下的所有表
数据库权限记录到mysql.db表中
3、表权限:
作用在特定表上
db_name.db_table 哪一个数据库的哪一个表上
数据库权限记录到mysql.table_prv表中

权限操作分类:(用逗号分隔)
1、列的权限
作用在特定表特定列上
在权限操作分类中体现列权限 select(col_name【列名】)
记录到mysql.columns_priv表中 filed(lie)
2、存储过程权限
作用在存储过程和函数
记录到mysql.procs_priv procedure
3、代理用户权限
作用是使一个用户成为一个用户的代理
记录到mysql.proxies_priv表中 proxy

grant
1、u1可以访问所有数据的所有表,select grant select on table *.*to ‘u1’@‘172.16.50.35’
2、u1可以访问 test数据库的所有表,insert
grant insert on table test.* to ‘u1’@‘172’
3、u3可以访问test数据里面的t1
grant all on table test.t1 to ‘u3’@‘172’
4、u4可以访问test数据库里面的t1(id)
grant select (id) on table test.t1 to ‘u4’@‘172’
5、权限的传递
grant all on . to ‘用户’@‘ip’ with grant option 通过with grant option选项给以给授权的用户当前操作的用户的全部权限
通过grant命令也可以创建用户
grant all on *.* to ‘u10’@‘%’ identified by ‘ ’ with grant option 不加密码会报错

废除权限
与grant用法相对应
revoke all on *.* from ‘用户’@’%’ 去除当前用户所有权限
通过with grant option建立的用户一旦原先用户相应的权限被删除自身的权限也会删除

注意的几点问题
不要把mysql系统数据库的权限授给用户
不要随意授予supper权限

你可能感兴趣的:(mysql)