I turned on some debugging, and here's what I see in /var/log/secure when "JohnD" tries logging in to Informix (the connection is successful and lets him in):
Feb 21 19:01:15 ifxdev1 oninit: pam_unix(password-auth:auth): authentication failure; logname= uid=202 euid=0 tty= ruser=JohnD rhost=aedev-rwandell.aemaine.com user=JohnD
Feb 21 19:01:15 ifxdev1 oninit: pam_winbind(password-auth:auth): Verify user 'JohnD'
Feb 21 19:01:15 ifxdev1 oninit: pam_winbind(password-auth:auth): user 'JohnD' granted access
Feb 21 19:01:15 ifxdev1 oninit: pam_winbind(password-auth:auth): Returned user was 'johnd'
Feb 21 19:01:15 ifxdev1 oninit: pam_winbind(password-auth:account): user 'johnd' granted access
And here's what I see in /var/log/secure when JohnD tries accessing MariaDB (MariaDB rejects the connection):
Feb 21 19:02:20 mariadev1 mysqld: pam_unix(password-auth:auth): authentication failure; logname= uid=502 euid=502 tty= ruser= rhost= user=JohnD
Feb 21 19:02:20 mariadev1 mysqld: pam_winbind(password-auth:auth): Verify user 'JohnD'
Feb 21 19:02:20 mariadev1 mysqld: pam_winbind(password-auth:auth): user 'JohnD' granted access
Feb 21 19:02:20 mariadev1 mysqld: pam_winbind(password-auth:auth): Returned user was 'johnd'
Feb 21 19:02:20 mariadev1 mysqld: pam_winbind(password-auth:account): user 'johnd' granted access
What we see is that the PAM stack output is, in both cases, identical. But Informix is allowing the connection and MariaDB is not. I note that in both cases, the user returned by pam_winbind is the lower-case version rather than the mixed case one.
[HEAVY SPECULATION MODE ENGAGED!]
What I suspect is happening here is that someone complained to IBM about this problem a long time ago, before I configured my Informix databases to use PAM (which was at least three years ago now). And that rather than wait for the winbindd people to fix the problem, they simply coded around it, taking the user name as specified by the user rather than the one that's being returned by pam_winbind.
[END HEAVY SPECULATION MODE]
But that still leaves me with a problem, where mixed case domain account names are not authenticating to MariaDB. I can instruct users to use all lower case for MariaDB ONLY but use mixed-case for everything else. It's a kludgy workaround at best, but it can be done. We could conceivably convert all of the AD accounts to all-lower case to begin with, but that would be a huge project with far-reaching consequences in our enterprise.
I have previously used PAM user accounts with names that contain upper case letters, and it worked fine for me.