我已经在我的 Percona 服务器上安装了 percona PAm 插件,如下所示:
mysql> show plugins;
...
| auth_pam | ACTIVE | AUTHENTICATION | auth_pam.so | GPL |
| auth_pam_compat | ACTIVE | AUTHENTICATION | auth_pam_compat.so | GPL |
+-------------------------------+----------+--------------------+--------------------+---------+
并且还配置了这个:
cat /etc/pam.d/mysqld
auth required pam_sss.so
account required pam_sss.so
我在 AD 服务器上有一个名为“dba”的组,并在该组中添加了一个 AD 用户“john.d”。所以我想使用 Ad 用户登录 MySQL,例如 john.d,他也应该继承授予“dba”组的所有特权。下面是这个 AD 组“dba”是如何允许其用户访问 Percona 服务器的设置:
CREATE USER ''@'' IDENTIFIED WITH auth_pam AS 'mysqld,dba=dbarole';
CREATE USER 'dbarole'@'%' IDENTIFIED BY 'dbapass';
GRANT ALL PRIVILEGES ON *.* TO 'dbarole'@'%';
GRANT PROXY ON 'dbarole'@'%' TO ''@'';
当我以 dbarole 身份登录到 mysql 时,一切都适用于所有授予的权限。但是,当我以 john.d(包含在“dba”AD 组中的 AD 用户之一)身份登录时,该用户不继承授予其组的权限(ALL),而仅具有 USAGE 权限,如下所示:
mysql> show grants;
+-----------------------------------+
| Grants for @ |
+-----------------------------------+
| GRANT USAGE ON *.* TO ''@'' |
| GRANT PROXY ON 'dba'@'%' TO ''@'' |
+-----------------------------------+
2 rows in set (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.01 sec)
我的问题是,如何让 AD 用户继承在 MySQL 中授予其组的权限?
我所要做的就是使用以下领域命令添加 dba 组:
这样做会自动更改 /etc/sssd/sssd.conf 文件并添加以下行:
在真正运行之前,access_provider 被设置为“ad”,并自动更改为“simple”,如上所示。