MySQL安全性和权限

一、mysql数据库的权限系统

防止数据有意或无意的被非法查看、修改、删除
两个概念:
	验证:
		确定用户是否允许连接数据库
	授权:
		确定用户是否有权限操作请求
		若验证不通过,授权就无法进行
	MySQL数据库权限控制步骤
		1、查看mysql数据库中user表用户是否允许连接
		2、若允许连接,查询user表中用户的授权,user表中的权限都是全局的
		3、若没有全局权限,查询db表看用户可以和那些数据库进行交互
		4、若用户在db表中没有权限,但是主机值为空,查询host表用户可以和那些数据库交互,实现特定用户访问主机的控制
		5、若user、db、host表中都没有权限,就查询tables_priv和columns_priv表,用户可以和那些表和列进行交互
	*权限是从广泛到特殊的顺序进检索(验证)

二、创建管理员

	-- 创建用户
	create user userName identified by 'password';
	-- 删除用户
	drop user userName;
	-- 修改用户名
	rename user userName to newUserName;
	-- 修改密码
	update user set password = password(‘newPassword’) where user = userName

三、用户授权

授权
	grant 权限 on tables to userName;-- 授权
回收:
	revoke 权限 ontables to userName;-- 回收权限

权限:
	insert、delete、update、select(表数据权限)
	alert、create、drop(表结构权限)
	all privileges(除了授权以外的所有全选)
	例子:
		create user xiaoge identified by '123456' -- 创建xiaoge管理员密码123456
		 -- 给xiaoge授权对test数据库student表添加、修改、查询、删除的权限(test.*表示test中所有数据表)
		grant insert,select,update,delete on test.student to xiaoge
		revoke insert on test.student to xiaoge; -- 回收xiaoge对test数据库student表单的

四、索引

作用 : 提高查询效率
语法:
	-- 创建索引
	create index 索引名 on 表名;-- 普通索引
	create unique index 索引名 on 表名;-- 唯一索引
	-- 删除索引
	drop index 索引名 on 表名;
应用:
	select * from 索引名 where name like 'xx'-- mysql中索引可以当表名使用

猜你喜欢

转载自blog.csdn.net/qq_43220836/article/details/106834855
今日推荐