MYSQL——访问控制、事务处理与并发控制(1)

177 阅读4分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 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)