一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第21天,点击查看活动详情。
MYSQL——访问控制、事务处理与并发控制(1)
需要:
了解组角色、角色、用户的概念及他们之间的区别;
了解数据库的不同权限;
掌握为用户分配权限及收回权限的方法;
掌握数据库事务管理的基本原理,包括显式事务、事务提交、事务回滚、隐式事务等,以及事务的编程方法。
掌握数据库并发控制的基本原理及其应用方法。
掌握Mysql数据库管理系统中用户管理相关操作:
1、查看Mysql数据库用户管理表
用户信息保存在Mysql数据库下的user表中。查看Mysql数据库下的user表,以显示目前数据库已经存在的用户信息。
select * from mysql.user
用户信息包括:主机地址、用户名、密码、权限。由host和user共同组成主键来区分用户。
user:代表用户的用户名
host:代表的是允许访问的客户端(IP或者主机地址)。如果host使用%,代表所有用户(客户端)都可以访问。
host的表现方式:
1). IP地址,如192.168.1.10;
2). 主机名,如localhost;
3). 通配符。
%:匹配任意字符
_:匹配任意单个字符
如192.168.1._(允许192.168.1.1-192.168.1.9)登录。
2、创建新用户
理论上讲可以采用两种方式创建
1)、直接使用root用户在mysql.user表中插入记录(不推荐)
2)、专门创建用户的SQL指令
基本语法:create user 用户名 identified by ‘密码(明文)’;
(1)添加新用户one,允许本机访问,密码是789
create user one@'localhost' identified by '789';
(2)添加新用户user1,允许外网IP访问
create user user1@'%' identified by '123456';
(3)添加新用户user2,允许外网IP访问,没有密码。
create user user2;
3.删除用户(需要root权限)
注意:
MySQL中user是带着host本身的(具有唯一性)
基本语法:
drop user 用户名@host;
(1)删除user2用户
drop user user2;
4.修改用户密码
MySQL中提供了多种修改的方式:
基本上都必须使用一个系统函数:password()需要靠该函数对密码进行加密处理。
1)、使用专门的修改密码的指令
基本语法:
set password for 用户 = password('新的明文密码')
修改user1的密码为‘123’
SET PASSWORD FOR user1@'%'=PASSWORD('123')
2)、使用更新语句update来修改表
基本语法:
update mysql.user set password = password('新的明文密码') where user = ' ' and host = '';(不推荐使用)
5.root用户 密码丢失找回
如果忘记了root用户密码,就需要去找回或者重置root用户密码:
1)停止服务,cmd中:net stop mysql
2)重新启动服务:mysqld.exe --skip-grant-tables //启动服务器,但是跳过权限管理
3)当前启动的服务器没有权限概念,非常危险,任何客户端不需要任何用户信息都可以直接登陆,而且是root权限
4)在MySQL中修改root用户的密码:指定 用户名@host
5)关闭服务器(注意在任务管理器强制关闭),重启服务(net start mysql)