IT评测·应用市场-qidao123.com技术社区
标题:
【MySQL】用户账户、角色、口令、PAM
[打印本页]
作者:
数据人与超自然意识
时间:
2025-3-28 00:15
标题:
【MySQL】用户账户、角色、口令、PAM
目录
检察用户账户设置
连接
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 用户@主机名
创建一个或多个角色。角色是作为一个特殊范例的账户创建的,没有口令,被锁定无法登录,而且指定了默认的验证插件。
操作用户账户和角色
利用
rename user 用户@主机名 to 用户@主机名
语句重命名账户和角色。
利用
drop user/role 用户@主机名
语句删除用户账户和角色。
配置口令和账户有效限期
创建用户时利用
create user 用户@主机名 identified by '口令'
;设置账户口令。
更改现有效户利用
alter user 用户@主机名 identified by '新口令'
;
更改当前用户口令:
alter user user() 用户@主机名 identified by '新口令'
;
利用
mysqladmin -u 用户 -p password '新口令';
也可更改口令。
手工使口令逾期
创建口令逾期账户:
CREATE USER 用户@主机名 IDENTIFIED BY '口令' PASSWORD EXPIRE;
在新用户第一次登录时需要重新设置密码。
利用户口令逾期:
ALTER USER 用户@主机名 PASSWORD EXPIRE
;(追加 ACCOUNT LOCK 还可以利用户锁定)
配置口令有效限期
利用 default_password_lifetime 全局变量指定多少天后必须要更改口令,默认为0,表示口令长期有效。
创建用户时配置:
CREATE USER 'user'@'host' IDENTIFIED BY '口令' PASSWORD EXPIRE INTERVAL 30 DAY;
将默认口令有效期应用于账户:
ALTER USER 'user'@'host' PASSWORD EXPIRE DEFAULT;
禁用自动的账户失效:
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 帐户的权限登录。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4