数据库用户管理

数据库用户管理

一、创建:

1.新建用户:

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];

‘用户名’:指定将创建的用户名.
‘来源地址’:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录,可用通配符%
‘密码’:若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;若使用加密密码,需要先使用SELECT PASSWORD(‘密码’);获取密文,再在语句中添PASSWORD ‘密文’;若省略“IDENTIFIED BY"部分,则用户的密码将为空(不建议使用)

mysql> create user 'wang'@'192.168.174.15' identified by '123123';
Query OK, 0 rows affected (0.00 sec)mysql> select password ('123123');
+-------------------------------------------+
| password ('123123')                       |
+-------------------------------------------+
| *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |
+-------------------------------------------+
1 row in set, 1 warning (0.00 sec)mysql> 

2.查看用户信息:

(1)创建后的用户保存在mysql 数据库的user表里:

mysql> use mysql;
Database changed
mysql> select user,authentication_string,host from user;
+---------------+-------------------------------------------+----------------+
| user          | authentication_string                     | host           |
+---------------+-------------------------------------------+----------------+
| root          | *6691484EA6B50DDDE1926A220DA01FA9E575C18A | localhost      |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | localhost      |
| mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | localhost      |
| wang          | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 | 192.168.174.15 |
| riky          | *ECB7B63F43CDAAF45A9AA640809447642DB634B8 | 192.168.174.15 |
+---------------+-------------------------------------------+----------------+
5 rows in set (0.00 sec)

(2)重命名指定:

rename user 'billkin'@'localhost' to 'pp'@'localhost';

在这里插入图片描述

(3)删除用户:

drop user 'pp'@'localhost';

在这里插入图片描述

(4)修改当前用户密码:

set password=password('abc123');
Query OK, 0 rows affected, 1 warning (0.00 sec)

(5)修改其他用户密码:

set password for 'riky'@'192.168.174.15'=password('abc123');
  • 忘记root密码的解决办法:

  • 修改/etc/my.cnf 配置文件,免密登陆mysql

    vim /etc/my.cnf
    [mysqld]
    skip-grant-tables    #添加,使登录mysql不使用授权表
    systemctl restart mysqld
    
  • mysql #直接登录,然后使用SQL语句修改密码

    UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('abc123') where user='root';
    FLUSH PRIVILEGES;
    quit
    mysql -u root -pabc123
    PS:最后再把/etc/my.cnf 配置文件里的skip-grant-tables 删除,并重启mysql服务
    

3.数据库用户授权:

(1)授予权限:

grant 提权
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];
grant all privileges on exo.phuket to 'wang'@'%' identified by 'abc123';#权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select, insert, update”。使用"all"表示所有权限,可授权执行任何操作。#数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符"*"。例如,使用“exo.*"表示授权操作的对象为school数据库中的所有表。#'用户名@来源地址':用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.exo.com"、“192. 168.174.%”等。#IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY"部分,则用户的密码将为空。#允许用户billkin在本地查询phuket数据库中所有表的数据记录,但禁止查询其他数据库中的表的记录。
grant select on phuket.* to 'riky'@'localhost' IDENTIFIED BY 'abc123';

(2)允许用户wang在所有终端远程连接mysql,并拥有所有权限。

grant all privileges on *.* to 'wang'@'%' identified by 'abc123';flush privileges;    #刷新权限
quitmysql -u wang -pabc123
use exo;
show tables; .
select * from phuket;

在这里插入图片描述

(3)查看权限:

mysql -u wang -pabc123
SHOW GRANTS FOR 用户名@来源地址;
show grants for 'wang'@'%';
+------------------------------------------------------+
| Grants for wang@%                                    |
+------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'wang'@'%'            |
| GRANT ALL PRIVILEGES ON "exo"."phuket" TO 'wang'@'%' |
+------------------------------------------------------+
2 rows in set (0.00 sec)

在这里插入图片描述

(4)撤销权限:

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址;
mysql> revoke all on *.* from 'wang'@'%';
Query OK, 0 rows affected (0.01 sec)mysql> show grants for 'wang'@'%';
+------------------------------------------------------+
| Grants for wang@%                                    |
+------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wang'@'%'                     |
| GRANT ALL PRIVILEGES ON "exo"."phuket" TO 'wang'@'%' |
+------------------------------------------------------+
2 rows in set (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> quit
Bye
  • 用用户wang账号登陆MySQL,测试权限是否被撤销:
    在这里插入图片描述

(5)授权用户权限 all privileges 代表了哪些权限:

insert(插入数据)
select(查询数据)
update(更新表的数据)
delete (删除表中的数据)
drop (删除库 和表)
create (创建库,表)
index (创建索引)
alter (更改表的属性)
create view (创建视图)
create routine (创建存储过程)
alter routine (修改存储过程)
event (事件)
trigger on (创建触发器)

二、总结:

数据库用户管理权限是指在数据库系统中授权用户访问和管理数据库的权限,对于企业来说是非常重要的。以下是数据库用户管理权限的重要性:

  1. 数据保密性:对于用户管理权限进行精细的控制可以提高数据的保密性。通过对用户进行分组授权,可以将敏感数据的访问权限限制在需要访问的人员范围内。
  2. 数据可用性:通过对用户进行授权,可以保证用户仅能访问其所需的数据,而不会破坏其他数据的稳定性和完整性。同时,可以通过授权限制用户的访问频率以及数据的查询范围,从而避免系统崩溃和数据丢失等问题。
  3. 数据完整性:通过对用户进行精细的控制,可以保证数据完整性。例如,通过设置字段约束、验证规则和触发器等,可以保证在数据插入、修改或删除时数据的准确性。
  4. 数据安全性:通过对用户进行授权和管理,可以保证数据的安全性。例如,可以对登陆、访问或执行某些敏感操作需要口令验证和密码策略等。
  5. 合规性:对于一些特殊行业来说,例如金融业、医疗业等,有一些合规要求需要对数据进行严格的管控。通过对用户进行细致的权限分配和控制,可以避免系统漏洞或数据泄露等问题,满足合规性要求。

,通过设置字段约束、验证规则和触发器等,可以保证在数据插入、修改或删除时数据的准确性。
4. 数据安全性:通过对用户进行授权和管理,可以保证数据的安全性。例如,可以对登陆、访问或执行某些敏感操作需要口令验证和密码策略等。
5. 合规性:对于一些特殊行业来说,例如金融业、医疗业等,有一些合规要求需要对数据进行严格的管控。通过对用户进行细致的权限分配和控制,可以避免系统漏洞或数据泄露等问题,满足合规性要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/29714.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

After Effects(AE)如何选择电脑硬件?

处理器(CPU) 处理器(或 CPU)是 After Effects 工作站最重要的部件之一。虽然 GPU 加速越来越受欢迎,但现在您选择的 CPU 通常会对整体系统性能产生更大的影响。然而,After Effects 使用 CPU 的方式意味着仅…

什么是渲染?一文看懂,萌新赶紧收藏码住!

十四五规划提出“加快数字化发展,建设数字中国”,数字技术的快速发展,从起初的内容创建到最终的效果呈现,都离不开渲染技术。目前,渲染技术被广泛应用于教育、医疗、影视动画、建筑设计等多个领域。它能有效满足用户对…

使用模板创建【vite+vue3+ts】项目出现 “找不到模块‘vue‘或其相应的类型声明” 的解决方案

问题描述 项目前台需要使用Vue3Ts来写一个H5应用,然后我用模板创建 npm create vitelatest vue3-vant-mobile -- --template vue-ts创建完后进入HelloWorld.vue,两眼一黑 解决办法一 npm i --save-dev types/node然后在tsconfig.json的"compi…

【MongoDB】SpringBoot整合MongoDB

【MongoDB】SpringBoot整合MongoDB 文章目录 【MongoDB】SpringBoot整合MongoDB0. 准备工作1. 集合操作1.1 创建集合1.2 删除集合 2. 相关注解3. 文档操作3.1 添加文档3.2 批量添加文档3.3 查询文档3.3.1 查询所有文档3.3.2 根据id查询3.3.3 等值查询3.3.4 范围查询3.3.5 and查…

初探KVM虚拟化技术:新手指南

首先了解一下虚拟化的概念 虚拟化是指对资源的逻辑抽象、隔离、再分配、管理的一个过程,通常对虚拟化的理解有广义狭义之分。广义包括平台虚拟化、应用程序虚拟化、存储虚拟化、网络虚拟化、设备虚拟化等等。狭义的虚拟化专门指计算机上模拟运行多个操作系统平台。…

JVM概述

1.什么是虚拟机? 虚拟机就是一台虚拟的计算机。它是一款软件,它分为系统虚拟机(比如VMware)和程序虚拟机(比如Java虚拟机)。 2.JVM的作用 Java虚拟机负责装载字节码文件到内部,编译为对应平台上的机器码指令来执行,还有自动的垃…

分析中心常见的协议字段以及语法

布尔运算符 基本语法 图中以及描述得很详细了。 日志检索高级查询语法 通配符查询:在一项内的单个字符用?去查,多个字符用*去查询,例如想查mysql和mssql就可以使用db_type:m?sql 去查询,而要查sql结尾就用 *sql 去…

MongoDB源码安装

文章目录 MongoDB源码安装:注:下载:解压:创建数据目录:创建软链接:创建变量脚本:执行脚本:启动mongodb:检查:连接mongodb: MongoDB源码安装: 注&…

八股文(消息队列)

文章目录 1. RabbitMQ特点2. 如何保证消息的可靠性3. RabbitMQ消息的顺序性4. 实现RabbitMQ的高可用性5. 如何解决消息队列的延时以及过期失效问题?6. RabbitMQ死信队列7. RabbitMQ延迟队列8.RabbitMQ的工作模式9. RabbitMQ消息如何传输10. 核心概念10.1 生产者和消…

TX Barcode .NET for WPF Crack

TX Barcode .NET for WPF Crack 用于WPF软件的TX Barcode.NET包括一天完成的功能以及用于WPF的软件的2D条形码控制。 用于WPF的TX Barcode.NET的功能和属性: 它具有以下特性和属性,如: 常见的文字处理功能:它可以为用户和开发人员…

CVE-2013-4547

CVE-2013-4547 一、环境搭建二、漏洞原理三、漏洞复现 一、环境搭建 如下介绍kali搭建的教程 cd ~/vulhub/nginx/CVE-2013-4547 // 进入指定环境 docker-compose build // 进行环境编译 docker-compose up -d // 启动环境docker-compose ps使用这条命令查看当前正在运…

J2EEJSP自定义标签库01out标签if标签

目录 一.什么是标签 二.JSP自定义标签库 2.1 JSP标签库是什么 2.2 处理流程 2.3 如何自定义标签 2.4 标签类型 三.开发示例 3.1 out标签 1.创建助手类 2.编写tld(标签库的描述)文件,(必须放在WEB-INF目录或其目录下&a…