【MySQL】用户账户、角色、口令、PAM

news2025/5/19 1:01:24

目录

查看用户账户设置

连接

1.本地连接

2.远程连接

账户

角色

操作用户账户和角色

配置口令和账户有效期限

手工使口令过期

配置口令有效期限

PAM身份验证插件

客户端连接:使用 PAM 账户登录


在连接到MySQL服务器并执行查询时,会验证你的身份并为您的活动授权。

查看用户账户设置

查询mysql数据库以查看user标识信息:SELECT user, host, authentication_string FROM mysql.user;

  • user:此账户上的用户名。
  • host:用户可以连接的DNS主机名或IP地址。
  • authentication_string:用户必须对该账户提供的口令,是加密的(AES加密算法)。

连接

1.本地连接

要使用mysql客户机连接到本地服务器,为要使用的帐户指定用户名和口令:

mysql -u username -ppassword -h localhost

默认主机名是localhost(127.0.0.1/::1),表示本机套接字连接。

mysql.user 表包含具有正确口令的 username@localhost 帐户。

2.远程连接

要连接到未安装在客户端本地主机上的服务器,必须提供要连接的服务器的主机名:

mysql -u username -ppassword -h servername

mysql.user 表中与用户关联的主机名是指发起连接的客户端主机的名称,而不是服务器主机的名称。

账户

账户名由用户名(可以不唯一,长度最长32个字符)和连接到客户端主机的名称或IP地址组成。

使用 create user 用户@主机名 identified by '口令' 创建账户,不要创建无口令和匿名帐户,避免通配符的使用。

角色

角色是一组权限的集合,可以更加方便地添加、删除和管理授权。角色类似于用户,存储在 mysql.users 表中,角色名由用户和主机组成,但不能像用户一样登录,可以将一个用户账户角色授予另一个用户。

使用 create role 用户@主机名 创建一个或多个角色。角色是作为一个特殊类型的账户创建的,没有口令,被锁定无法登录,而且指定了默认的验证插件。

操作用户账户和角色

  1. 使用 rename user 用户@主机名 to 用户@主机名 语句重命名账户和角色。
  2. 使用 drop user/role 用户@主机名 语句删除用户账户和角色。

配置口令和账户有效期限

  1. 创建用户时使用 create user 用户@主机名 identified by '口令';设置账户口令。
  2. 更改现有用户使用 alter user 用户@主机名 identified by '新口令'
  3. 更改当前用户口令:alter user user() 用户@主机名 identified by '新口令'
  4. 使用 mysqladmin -u 用户 -p password '新口令';也可更改口令。

手工使口令过期

  1. 创建口令过期账户:CREATE USER 用户@主机名 IDENTIFIED BY '口令' PASSWORD EXPIRE; 在新用户第一次登录时需要重新设置密码。
  2. 使用户口令过期:ALTER USER 用户@主机名 PASSWORD EXPIRE;(追加 ACCOUNT LOCK 还可以使用户锁定)

配置口令有效期限

  1. 使用 default_password_lifetime 全局变量指定多少天后必须要更改口令,默认为0,表示口令长期有效。
  2. 创建用户时配置:CREATE USER 'user'@'host' IDENTIFIED BY '口令' PASSWORD EXPIRE INTERVAL 30 DAY; 
  3. 将默认口令有效期应用于账户:ALTER USER 'user'@'host' PASSWORD EXPIRE DEFAULT;
  4. 禁用自动的账户失效:ALTER USER 'user'@'host' PASSWORD EXPIRE NEVER;

PAM身份验证插件

PAM 身份验证插件是一个企业版插件,可根据操作系统对MySQL 帐户进行身份验证。

PAM 定义了配置身份验证的服务,这些服务存储在 /etc/pam.d 中 ,每个服务对应一个文件。

MySQL客户端 → MySQL服务器 → PAM插件 → /etc/pam.d/mysql-pam → 操作系统认证

(1)直接映射:要创建直接映射到操作系统用户的 MySQL 用户,使用语句:

CREATE USER bob@localhost IDENTIFIED WITH authentication_pam AS 'mysql-pam';

用户:bob,主机:localhost,插件:authentication_pam,验证字符串:mysql-pam。

  • 用户 bob@localhost 必须同时是操作系统用户
  • 密码验证完全由操作系统处理
  • 口令不存储在MySQL 的 mysql.user 表中,它是操作系统验证口令。
  • 用户只能使用操作系统密码登录

(2)组映射代理:创建一个使用PAM并从OS操作系统组映射到MySQL用户的匿名代理用户

 CREATE USER ''@''
 IDENTIFIED WITH authentication_pam 
   AS 'mysql-pam, www=webuser, root=root';
  • 匿名用户账户(''@'')作为代理
  • 根据操作系统组自动映射到不同 MySQL 账户:操作系统 www 组的成员映射到MySQL webuser 帐户,root组的成员映射到MySQL root 帐户。
  • 代理用户必须对映射的帐户具有PROXY权限:
GRANT PROXY ON webuser@localhost TO ''@'';
GRANT PROXY ON root@localhost TO ''@'';

客户端连接:使用 PAM 账户登录

MySQL 将从客户端收到的用户名和口令传递给PAM,PAM针对操作系统进行身份验证。

(1)PAM 只能处理纯文本的口令,必须启用明文客户端身份验证插件:

mysql --enable-cleartext-plugin -u username -p

(2)连接示例:代理用户采用映射帐户的身份。示例:Anne 不是MySQL 用户,但在操作系统的www组中:

# 直接映射用户连接
mysql --enable-cleartext-plugin -u os_user -p

# 组映射用户连接(用户 anne 属于 www 组)
mysql --enable-cleartext-plugin -u anne -p

Anne 的客户端现在使用webuser@localhost 帐户的权限登录。

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

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

相关文章

SpringBoot 3+ Lombok日志框架从logback改为Log4j2

r要将Spring Boot 3项目中的日志框架从Logback切换到Log4j2&#xff0c;并配置按日期滚动文件和控制台输出&#xff0c;请按照以下步骤操作&#xff1a; 步骤 1&#xff1a;排除Logback并添加Log4j2依赖 在pom.xml中修改依赖&#xff1a; <dependencies><!-- 排除默…

【Tauri2】002——Cargo.toml和入口文件

目录 前言 正文 toml文件的基础 注释——# Comment 键值对——Key/Value 表——[table] 内联表——Inline Table 数组——Array package和crate Cargo.toml文件 Cargo.toml——dependencies Cargo.toml——lib crate-type main.rs 前言 【Tauri2】001——安装及…

二叉树相关算法实现:判断子树与单值二叉树

目录 一、判断一棵树是否为另一棵树的子树 &#xff08;一&#xff09;核心思路 &#xff08;二&#xff09;代码实现 &#xff08;三&#xff09;注意要点 二、判断一棵树是否为单值二叉树 &#xff08;一&#xff09;核心思路 &#xff08;二&#xff09;代码实现…

CSS 美化页面(一)

一、CSS概念 CSS&#xff08;Cascading Style Sheets&#xff0c;层叠样式表&#xff09;是一种用于描述 HTML 或 XML&#xff08;如 SVG、XHTML&#xff09;文档 样式 的样式表语言。它控制网页的 外观和布局&#xff0c;包括字体、颜色、间距、背景、动画等视觉效果。 二、CS…

23种设计模式-组合(Composite)设计模式

组合设计模式 &#x1f6a9;什么是组合设计模式&#xff1f;&#x1f6a9;组合设计模式的特点&#x1f6a9;组合设计模式的结构&#x1f6a9;组合设计模式的优缺点&#x1f6a9;组合设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是组合设计模式…

LSTM创新点不足?LSTM + Transformer融合模型引领Nature新突破

LSTM创新点不足&#xff1f;LSTM Transformer融合模型引领Nature新突破 2024年LSTM真的没有创新空间了吗&#xff1f; 最新研究表明&#xff0c;通过将LSTM与Transformer巧妙融合&#xff0c;依然能创造出Nature级别的突破性成果。LSTM擅长处理短期时序模式&#xff0c;但在…

【区块链安全 | 第六篇】NFT概念详解

文章目录 NFTNFT&#xff08;非同质化代币&#xff09;FT&#xff08;可替代代币&#xff09; 以太坊 NFT 标准ERC-721&#xff08;单一资产&#xff09;ERC-1155&#xff08;多资产&#xff09; NFT 市场版税机制NFT 借贷NFT 安全 NFT NFT&#xff08;Non-Fungible Token&…

iOS常见网络框架

URLSession、Alamofire 和 Moya 1. URLSession 1.1 核心概念 URLSession 是 Apple 官方提供的网络请求 API&#xff0c;封装在 Foundation 框架中。它支持 HTTP、HTTPS、FTP 等协议&#xff0c;可用于&#xff1a; ​ • 普通网络请求&#xff08;GET/POST&#xff09; ​ …

蓝桥杯备考---->激光炸弹(二维前缀和)

本题我们可以构造二维矩阵&#xff0c;然后根据题意&#xff0c;枚举所有边长为m的正方形&#xff0c;找到消灭价值最多的炸弹 #include <iostream> using namespace std; const int N 1e4; int a[N][N]; int n,m; int f[N][N]; int main() {cin >> n >> m…

数据结构 --树和森林

树和森林 树的存储结构 树的逻辑结构 树是一种递归定义的数据结构 树是n(n≥0)个结点的有限集。当n0时&#xff0c;称为空树。在任意一棵非空树中应满足&#xff1a; 1)有且仅有一个特定的称为根的结点。 2)当n>1时&#xff0c;其余结点可分为m(m>0)个互不相交的有…

QOpenGLWidget视频画面上绘制矩形框

一、QPainter绘制 在QOpenGLWidget中可以绘制&#xff0c;并且和OpenGL的内容叠在一起。paintGL里面绘制完视频后&#xff0c;解锁资源&#xff0c;再用QPainter绘制矩形框。这种方式灵活性最好。 void VideoGLWidget::paintGL() {glClear(GL_COLOR_BUFFER_BIT);m_program.bi…

Linux系统加固笔记

检查口令为空的账户 判断依据&#xff1a;存在则不符合 特殊的shell a./bin/false:将用户的shell设置为/bin/false&#xff0c;用户会无法登录&#xff0c;并且不会有任何提示信息b./sbib/nologin&#xff1a;nologin会礼貌的向用户发送一条消息&#xff0c;并且拒绝用户登录…

【Go万字洗髓经】Golang中sync.Mutex的单机锁:实现原理与底层源码

本章目录 1. sync.Mutex锁的基本用法2. sync.Mutex的核心原理自旋到阻塞的升级过程自旋CAS 饥饿模式 3. sync.Mutex底层源码Mutex结构定义全局常量Mutex.Lock()方法第一次CAS加锁能够成功的前提是&#xff1f;竞态检测 Mutex.lockSlow()lockSlow的局部变量自旋空转state新值构造…

Django REST framework 源码剖析-认证器详解(Authentication)

Django REST framework 源码剖析-认证器详解(Authentication) 身份验证始终在视图的最开始运行&#xff0c;在权限和限制检查发生之前&#xff0c;以及在允许任何其他代码继续之前。request.user属性通常设置为contrib.auth包的user类的实例。request.auth属性用于任何其他身份…

TCP/IP三次握手的过程,为什么要3次?

一&#xff1a;过程 第一次&#xff08;SYN&#xff09;&#xff1a; 客户端发送一个带有SYN标志的TCP报文段给服务器&#xff0c;设置SYN1&#xff0c;并携带初始序列号Seqx&#xff08;随机值&#xff09;&#xff0c;进入SYN_SENT状态。等待服务器相应。 第二次&#xff08…

Centos6安装nerdctl容器运行时

Centos6安装nerdctl容器运行时 前言Centos6安装docker---失败--不可拉取镜像docker配置国内镜像加速 Centos6安装nerdctl-full容器管理工具为Centos6配置containerd服务开机自启动设置nerdctl自动补全 前言 本文写于2025年3月22日,因一些特殊业务需要用到Centos6Docker,但Cent…

登录验证码的接口实习,uuid,code.

UID是唯一标识的字符串,下面是百度百科关于UUID的定义&#xff1a; UUID是由一组32位数的16进制数字所构成&#xff0c;是故UUID理论上的总数为16322128&#xff0c;约等于3.4 x 10^38。也就是说若每纳秒产生1兆个UUID&#xff0c;要花100亿年才会将所有UUID用完。 UUID的标准…

用fofa语法搜索漏洞

FOFA是一款非常强大的搜索引擎 关于对于fofa的描述是&#xff1a;FOFA&#xff08;网络空间资产检索系统&#xff09;是世界上数据覆盖更完整的IT设备搜索引擎&#xff0c;拥有全球联网IT设备更全的DNA信息。 探索全球互联网的资产信息&#xff0c;进行资产及漏洞影响范围分析…

20242817李臻《Linux⾼级编程实践》第6周

20242817李臻《Linux⾼级编程实践》第6周 一、AI对学习内容的总结 Linux进程间通信&#xff08;IPC&#xff09; 1. 进程间通信基本概念 作用: 数据传输&#xff1a;进程间传递数据&#xff08;字节到兆字节级别&#xff09;。共享数据&#xff1a;多个进程操作同一数据&…

深入解析SQL2API平台:数据交互革新者

在数字化转型持续深入的当下&#xff0c;企业对数据的高效利用与管理的需求愈发迫切。SQL2API平台应运而生&#xff0c;成为助力企业突破数据交互困境的有力工具&#xff0c;特别是它由麦聪软件基于DaaS&#xff08;数据即服务&#xff09;产品创新衍生而来&#xff0c;备受业界…