Mysql

使用 SSSD 進行 AD 身份驗證的 Percona PAM

  • December 27, 2018

我已經在我的 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 組:

realm permit -g dba

這樣做會自動更改 /etc/sssd/sssd.conf 文件並添加以下行:

access_provider = simple
simple_allow_groups = dba

在執行 real 之前,access_provider 設置為“ad”,並自動更改為“simple”,如上圖所示。

引用自:https://dba.stackexchange.com/questions/225708