mysql 细节记录01-权限相关

注意点

mysql权限级别

  1. 全局
  2. 数据库

information_schema数据库

这个数据库存储了mysql的一系列虚拟对象,这个数据库并没有对应的物理文件,不能对这个数据进行授权

test数据库

mysql安装之后会默认创建一个test数据库,这个数据库默认的权限是允许所有用户操作,注意安装之后要清除掉这个数据库,并执行truncate table mysql.db,否则会存在安全隐患

权限类型

可以使用desc mysql.tables_priv;,查看权限类型

安全隐患

  1. 清除默认的数据库test并清空权限
# 删除默认创建的数据库
drop database test;
# 清空默认的权限
truncate table mysql.db
  1. 去掉mysql命令执行的日志

相关命令

创建用户

create user zj_test@'%' identified by 'Zj123!@#';

创建用户并给权限

grant select on my_test.* to zj_test identified by 'Zj123!@#';

设置库级别权限

grant select on my_test.* to zj_test2;

回收用户权限(清除不了一些特殊的权限 USAGE )

revoke select on my_test.* from zj_test2;

清空全局权限(注意清除不了基于库的权限,例如上面的语句赋予的权限就清除不了)

revoke select on *.* from zj_test2;

清空所有权限(注意是清空所有权限(不能清除 USAGE 权限))

revoke all privileges, grant option from zj_test;

设置密码

set password for zj_test@'%' = 'Zj123$%^';

查看用户权限

show grants for zj_test;

删除用户(不会终止已登录的用户)

drop user zj_test;

表级别权限存放表

select *
from mysql.tables_priv;

查看权限信息

desc mysql.tables_priv;

设置表级别的权限

grant all on my_test.user to zj_test identified by 'Zj123!@#';
grant select on my_test.* to zj_test;

回收表级别权限

revoke all on my_test.user from zj_test;

设置列级别权限

grant select(`name`) on my_test.user to zj_test;

列级别权限存放表

select *
from mysql.columns_priv;

标签: mysql

添加新评论