数据库用户管理

数据库用户管理

一、创建:

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.mzph.cn/news/4999.shtml

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

相关文章

Docker 应用容器引擎

Docker 应用容器引擎 一、Docker是什么二、Docker安装和查看1、docker安装2、docker版本信息查看3、docker信息查看 三、镜像操作四、容器操作1、容器创建2、创建并启动容器3、容器的进入4、复制5、容器的导入和导出6、删除容器 一、Docker是什么 是一个开源的应用容器引擎&…

ROS:nodelet

目录 一、前言二、概念三、作用四、使用演示4.1案例简介4.2nodelet 基本使用语法4.3内置案例调用 五、nodelet实现5.1需求5.2流程5.3准备5.4创建插件类并注册插件5.5构建插件库5.6使插件可用于ROS工具链5.6.1配置xml5.6.2导出插件 5.7执行 一、前言 ROS通信是基于Node(节点)的…

【动手学深度学习】--15.含并行连结的网络GoogLeNet

文章目录 含并行连结的网络GoogLeNet1.Inception块2.GoogLeNet模型3.训练模型 含并行连结的网络GoogLeNet 学习视频:含并行连结的网络 GoogLeNet / Inception V3【动手学深度学习v2】 官方笔记:含并行连结的网络(GoogLeNet) 1.…

Appium-Python-Client 源码剖析 (一) driver 的元素查找方法

目录 前言 源码版本:0.9 结构图: mobileby.py appium 的 webdriver.py selenium 的 webdriver.py seleniumdriver appiumdriver 前言 Appium-Python-Client是一个用于Python语言的Appium客户端库,它提供了丰富的API和功能,用于编写和…

【LeetCode】594. 最长和谐子序列

594. 最长和谐子序列(简单) 方法:哈希表计数 思路 题目规定的「和谐子序列」中的最值差值正好为 1,因而子序列排序后必然符合[a,a,.., a 1,a1]形式,即符合条件的和谐子序列长度为相邻两数(差值为 1)的出现次数之和。…

国产单片机(沁恒微WCH)CH32V307评估板初探

国产单片机(沁恒微WCH)CH32V307评估板初探 关于沁恒微:国产芯厂家、官网链接 公司简介 - 南京沁恒微电子股份有限公司 (wch.cn) 开发板资源: 评估板应用于 CH32V307 芯片的开发,IDE 使用 MounRiver 编译器,可选择使用板载或独…

为何异地销号这么难?这些注意事项要熟记!

最近有不少小伙伴私信小编,他们在网上办理的大流量手机号卡,用了一段时间之后想换其他的卡,所以想注销当前用的卡,但是注销的时候确实屡屡碰壁,程序还比较繁琐,有的甚至申请注销了几个月还注销不掉&#xf…

面向对象Java基础

前言 看大话设计模式的时候,发现自己的基础不是很扎实,重新回顾一些存在有点点不确定的内容,并从书中截取下来,做成笔记快速复习。 1、字段和属性 字段:用private修饰,也叫私有变量。属性:字…

Microsoft Outlook 共享收发邮件的权限给其他人

点击File 点击Account Settings→DelegateAccess 点击Add

[java安全]CommonsCollections1(LazyMap)

文章目录 【java安全】CommonsCollections1(LazyMap)前言LazyMap如何创建LazyMap对象?如何调用LazyMap的get()方法?如何触发AnnotationInvocationHandler#invoke()方法?POC总结参考 【java安全】CommonsCollections1(LazyMap) 前言 前面我们…

Hadoop: High Available

序言 在Hadoop 2.X以前的版本,NameNode面临单点故障风险(SPOF),也就是说,一旦NameNode节点挂了,整个集群就不可用了,而且需要借助辅助NameNode来手工干预重启集群,这将延长集群的停…

Python学习笔记-Windows下VirtualEnv+VSCode中虚拟环境配置

1 VirtualEnv简介 VirtualEnv是一个虚拟化环境,是独立开的开发环境,在一个文件夹中创建的独立虚拟环境,可以分隔开不同项目,开发互不影响。 优点如下: 使不同的应用开发环境独立,避免互相干扰环境升级不…

RxSwift 使用方式

背景 最近项目业务,所有模块已经支持Swift混编开发,正在逐步使用Swift 方式进行开发新业务,以及逐步替换老业务方式进行发展,所以使用一些较为成熟的Swift 的三方库,成为必要性,经过调研发现RxSwift 在使用…

lvs使用

1.前言 LVS(Linux Virtual Server)是一个基于 Linux 内核的负载均衡器,用于分发网络流量和将请求转发给后端服务器。LVS 提供了多种负载均衡算法和转发模式,以满足不同场景和需求的负载均衡需求,在LVS中定义虚拟服务的…

制作Visual Studio离线安装包

vs2015之后官网就不提供离线安装包了,使用离线安装包就需要自己手动制作一个; 以vs2019为例: 先去官网下载在线安装器 官网下载地址:Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 (microsoft.com) 展开2019的标签…

【C语言】深剖数据在内存中的存储

👦个人主页:Weraphael ✍🏻作者简介:目前正在回炉重造C语言(2023暑假) ✈️专栏:【C语言航路】 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你…

初识react

初识react 第一步就给我出个问题版本太低 https://www.cnblogs.com/gslgb/p/16585233.html https://blog.csdn.net/xiangshiyufengzhong/article/details/124193898 第二个问题 便利生成dom 需要绑定key 不要总想着加冒号这不是vue 第三个问题 我p标签包裹 MapList组件 MapLis…

Redis相关配置(3)

⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot vue-element 开发个人博客项目实战教程 ⭐专栏内容:个人博客系统 ⭐我的文档网站:http://xyhwh-nav.cn/ 文章目录 Redis相关配置1、units2、Include3、loadmodule 加载模块4、NET…

创意网页模板免费下载,让你的网站与众不同!

今天给大家带来的网站模板素材,网站类型丰富,包含户外旅行、餐饮、个人网站等等,可以学习和参考其中的布局排版和配色。 ⬇⬇⬇点击获取更多设计资源 https://js.design/community?categorydesign&sourcecsdn&planbbqcsdn772 1、设…

【1++的C++初阶】之vector

👍作者主页:进击的1 🤩 专栏链接:【1的C初阶】 文章目录 一,什么是vector?二,构造与析构三,vector迭代器的实现四,vector部分重要接口的实现 一,什么是vector? vector…