| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 项目8总结:数据库的安全性维护 -> 正文阅读 |
|
[大数据]项目8总结:数据库的安全性维护 |
目录 【任务8.1】添加数据库用户1.MySQL的权限表MySQL通过权限表来控制用户对数据库的访问,MySQL数据库在安装时会自动安装多个数据库。MySQL权限表存放在名称为MySQL的数据库中。常用的权限表有user、db、host、table_priv、columns_priv和procs_priv. (1)user权限表。user是MySQL中最重要的一个权限表,user列主要分为4个部分:用户列、权限列、安全列和资源控制列。 ①用户列:用户登录时通过表中的Host、User和Password列判断连接的IP、用户名称和密码是否存在于表中来通过身份验证或拒绝连接。 ②权限列:user表中包含多个以“_priv”结尾的字段,这些字段决定了该用户的权限,既包括查询权限、插入权限、更新权限、删除权限等普通权限,也包括关闭服务器和加载用户等高级管理权限。 ③安全列:ssl(加密)、x509(标识用户)开头的字段,以及 plugin和 authentication_string 字段(验证用户身份、授权的插件)。 ④资源控制列:max(最大允许次数,0表示无限制)开头的字段。
(2)db、host权限表。db权限表存储用户在各个数据库上的操作权限,决定哪些用户可以从哪些主机访问哪些数据库。 host权限表是db权限表的扩展,配合db权限表对给定主机上数据库级操作权限做更细致的控制。host权限表很少使用,只有在db表的范围内扩展一个条目时才会用到。 (3)table_priv权限表。记录数据表级别的操作权限。table_priv权限表与db权限表相似,不同之处是它用于数据表而不是数据库。 (4)columns_priv权限表。记录数据字段级别的操作权限。columns_priv 权限表的作用与table_priv权限表类似,不同之处是它针对某些表的特定字段的权限。 (5)procs_priv权限表。该权限表存储用户在存储过程和函数上的操作权限。 2.添加用户新安装的MySQL中只有一个名称为root的用户。这个用户是安装服务器时由系统创建并赋予了MySQL的所有权限。在对MySQL的实际操作中,通常需要创建不同层次要求的用户来确保数据的安全访问。添加用户可以通过 CREATE USER、INSERT和GRANT语句来实现。 (1)CREATE USER 语句的语法格式为:
说明: ①使用CREATE USER 语句可以创建一个或多个用户,用户之间用逗号分隔。 ②“主机”可以是主机名或IP地址,本地主机名可以使用localhost,“%”表示一组主机。③“IDENTIFIED BY”关键字用于设置用户的密码,若指定用户登录不需要密码,则可以省略该选项。 ④“PASSWORD”关键字指定使用哈希值设置密码。密码的哈希值可以使用PASSWORD()函数获取。
说明:通常语句只能添加Host、User、Password字段的值,分别表示user数据表中的主机名字段、用户名字段和密码字段。 注意,GRANT语句在授予用户权限任务部分详细讲解。 【任务8.2】授予、回收数据库用户权限1.授予用户权限GRANT语句不仅是授权语句,还可以达到添加新用户或修改用户密码的作用。GRANT语句的语法格式为:
说明: ①“权限名称”中常用的权限如下。
②“对象名”有以下权限级别。 全局权限:适用于一个给定服务器中的所有数据库,可以用“*。 *”来表示。 数据库权限:适用于一个给定数据库中的所有数据库对象,可以用“数据库名。·”来表示。 表权限:适用于一个给定表中的所有列,可以用“数据库名,表名”来表示。 列权限:适用于一个给定表中的单一列,可以先用“数据库名,表名”来表示,再在权限名称后加上“[(字段列表)]”可选项,如SELECT(员工ID,姓名)。 子程序权限:适用于给定存储过程或函数,可以用“PROCEDURE|FUNCTION数据库名,过程名”来表示。 ③“<用户名'>@<'主机'>”中若“用户名”不存在则添加用户“[IDENTIFIEDBY[PASSWORD]<'新密码'>]”可选项可以设置新用户的密码,若“用户名”已经存在,则此选项可以修改用户的密码。 ④“[WITH GRANT OPTION]”可选项表示允许用户将获得的权限授予其他用户。 2.查看用户权限(1)使用SHOW GRANTS语句查看授权信息,其语法格式为:
(2)使用SELECT 语句查看 mysql.user表中用户的全局权限,其语法格式为:
说明:“mysql.user”表可以查询到用户的全局权限,“<权限字段>”中常用的权限字段Select_priv、Insert_priv、Create_priv等,mysql.db中可以查询到用户的数据库权限。 3.回收用户权限使用REVOKE语句回收用户权限,其语法格式为:
说明:REVOKE语句用来取消指定用户的某些指定权限,与GRANT语句类似。 【任务8.3】数据库用户管理当管理员在MySQL中添加了用户后,因为各种问题可能需要对用户进行改名、修改密码或删除用户来实现对用户的管理。 1.修改用户的名称使用 RENAME USER 语句可以修改用户的名称,其语法格式为:
说明:RENAME USER 语句可以对用户进行重命名,该语句可以同时对多个已存在的用户进行重命名,各个用户之间使用逗号分隔,重命名时“旧的用户名”必须已经存在,并且“新的用户名”还不存在,使用者必须拥有“RENAME USER”权限。 2.修改用户的密码(1)使用mysqladmin命令修改用户密码的语法格式为:mysqladmin-u<用户名> [-h<主机>]-p password[<新密码>]说明:“mysqladmin”是一条外部命令,必须在服务器端的“命令提示符”下执行。
说明:SET PASSWORD语句可以修改用户的密码,语句中若不加“[FOR<'用户名'>@<'主机'>]”可选项,则修改当前用户密码。( 3)使用UPDATE语句修改用户密码的语法格式为:
说明:“新密码”需要用“PASSWORD()”函数来加密。 3.删除用户(1)使用DROP USER 语句删除用户的语法格式为:
说明:DROP USER语句可以删除一个或多个普通用户,各用户之间用逗号分隔。如果删除用户已经创建的数据库对象,那么该用户将继续保留。使用者必须拥有“DROP USER”权限。 (2)使用DELETE语句删除用户的语法格式为:
说明:使用DELETE语句删除用户时,使用者必须拥有“mysql.user”的“De-lete”权限。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 20:50:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |