数据库用户和权限管理
(一)用户管理
用户管理涉及到用户连接DBMS系统的常规操作,以及使用root超级用户的模式下,完成普通用户的创建、修改以及删除等各种操作。
(1) 连接数据库
连接数据库的操作,在第一讲的内容中已经有所涉及,这里针对连接数据库的操作做一个基本的回顾和梳理,在命令行执行命令mysql --help查看操作命令和帮助,会出现大量的操作选项,其中较为常用的选项如下:
• -h:host连接数据库的主机名称,通常我们使用ip地址进行确定
• -P:Port端口号,大写字符P指定连接数据库服务器使用的端口号
• -u:user连接数据库的用户账号
• -p:password连接数据库的用户密码
(2) 创建用户
新用户创建:
格式: CREATE USER ‘用户名’@‘来源地’ identified by ‘密码’;
来源地(ip地址): 限制当前用户能在哪个设备上 登录数据库
举例: 创建了 zhangsan 用户 来源地是 192.168.1.23 (‘zhangsan’@‘192.168.1.23’)
zhangsan 这个用户只能在ip地址为192.168.1.23 的电脑上 使用
• CREATE USER:用于创建一个新用户的关键字
• damur:创建的用户账号
• localhost:指定创建用户账号的数据库主机
• IDENTIFIED BY:用于设置用户登录数据库的密码
• ‘123456’:设置的登录数据库的明文密码
create user 'zs'@'%' identified by '123' -- 任何位置都能登录
create user 'zs'@'127.0.0.1' ... -- 只能在本机登录
create user 'zs'@'10.10.12.%' ... -- 只要ip地址 10.10.12.xx 都可以使用
create user 'zs'@'10.10.%.%'
(3) 删除用户
(4) 修改密码
从8.0开始修改密码有了变化,在user表加了字段authentication_string,修改密码前先检查authentication_string是否为空
(5) 密码丢失的处理
方式一:使用–init-file选项完成密码的重置工作
步骤一,通过系统服务停止MySQL服务,或者在命令窗口直接执行命令停止数据库服务
步骤二,创建一个文件,将修改密码的命令添加到文件中:
步骤三,启动服务器,使用mysqld命令附带–init-file参数执行命令
(二)权限管理
权限管理是针对MySQL中的用户对于数据库和数据表中的数据的管理操作,MySQL中的所有用户以及访问数据的操作权限都是包含在数据库表信息中,对于用户的合理的权限分配,能极大程度的区分不同用户在数据库中的数据操作边界,提高系统的安全性。
权限操作主要通过grant和revoke命令进行操作。
常用权限: insert delete create select update drop
all
1 授权操作
完整的权限授权语法:
create user '用名'@'来源地' identified by '密码';
GRANT ALL PRIVILEGES ON *.* TO 'zs'@'%';
刷新授权表
案例操作:创建一个新用户,并授权用户对所有数据的插入、修改和查询的权限
2 收回权限
案例操作:回收用户damu的修改权限
回收更新权限