内容正文:
第14章 MySQL数据库安全管理
主要内容
14.1 数据库安全管理概述
14.2 用户管理
14.3 权限管理
14.4 角色管理
14.5 本章小结
14.1 数据库安全管理概述
数据库的安全性是指有效保护数据库,防止不合法地使用造成数据泄露、更改或者毁坏,其本质是要保护数据的安全性、完整性和一致性。
MySQL是一个多用户的数据库管理系统,它提供了功能强大的访问控制系统,以此来确保MySQL服务器的安全访问,即它可以为不同用户指定不同的访问权限,从而进一步减少数据泄露或被损坏的风险。
数据库安全管理最重要的是要确保有资格的用户访问数据库的权限,同时令所有未授权的用户无法获取数据。
14.2 用户管理
14.2.1 查看用户信息
使用user表查看用户信息
MySQL的用户管理包括管理用户的账号、权限和角色等。MySQL用户可以分为两种:root用户和普通用户。root用户是超级管理员,拥有所有权限,普通用户只拥有被授予的各种权限。
MySQL的用户账号及相关信息都存储在mysql数据库的user表中,我们可以用SELECT语句去user表中查看所有的用户信息。
【例14.1】查看MySQL中所有用户。
在MySQL命令行客户端输入命令:
SELECT user,host FROM mysql.user;
14.2 用户管理
14.2.1 查看用户信息
使用user表查看用户信息
user表是MySQL中非常重要的一个权限表,以下是它的四类字段:
范围列:包括user字段和host字段。
权限列:决定了用户的权限,表示了在全局范围内允许对数据和数据库进行的操作。
安全列:都是和加密、标识用户、授权插件相关的字段。
资源控制列:用来限制用户使用的资源。
14.2 用户管理
14.2.1 查看用户信息
使用函数查看当前用户
第11章我们介绍过部分系统函数,可以使用这些函数来查看当前登录用户的名称。
【例14.2】查看当前用户。
在MySQL命令行客户端输入命令:
SELECT USER();
SELECT CURRENT_USER();
14.2 用户管理
14.2.1 查看用户信息
使用图形化工具查看用户
打开Workbench工具,连接到MySQL服务器。
选中“Administration”标签,单击“MANAGEMENT”下的“Users and Privileges”选项,出现界面如图所示。
14.2 用户管理
14.2.2 登录和退出MySQL服务器
启动MySQL服务后,可以在DOS窗口通过mysql命令登录到MySQL服务器,基本语法格式如下:
mysql -h hostname|hostIP -P port -u username -p
-D DatabaseName -e “SQL语句”
其余参数可以通过mysql --help或者mysql -?语句来查询
退出登录直接输入QUIT或者EXIT命令即可
【例4.3】登录MySQL服务器中的jwgl数据库。
在MySQL命令行客户端输入命令:
mysql -u root -p jwgl
回车后在下一行出现“Enter password:”时输入密码即可。
14.2 用户管理
14.2.3 创建用户
使用命令创建用户
可以使用CREATE USER语句来创建用户,语法格式:
CREATE USER [IF NOT EXISTS] user
[IDENTIFIED BY 'password']
[,user [IDENTIFIED BY 'password']]…
[DEFAULT ROLE role [,role]]...
[WITH resource_option [resource_option] ...]
[password_option|lock_option] ...
[COMMENT 'comment_string']
14.2 用户管理
14.2.3 创建用户
使用命令创建用户
【例14.4】创建新用户u1,主机名为localhost,密码为“123456”。
在MySQL命令行客户端输入命令:
CREATE USER u1@localhost IDENTIFIED BY '123456';
新创建的用户拥有的权限很少,它们可以登录到MySQL服务器,只允许进行不需要权限的操作。
14.2 用户管理
14.2.3 创建用户
使用图形化工具创建用户
打开Workbench工具,连接到MySQL服务器。
进入如图14.2所示界面,单击左下角的“Add Account”按钮,进入如图14.4所示的创建用户界面。
将新用户信息填入后,单击“Apply”,新用户