-
Notifications
You must be signed in to change notification settings - Fork 999
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feat.Req.] ProxySQL as an authentication middleware (separate credentials for frontend and backend) #3446
Comments
we could really use this feature as well. the use case is to bypass the need in Azure to use fully-qualified (user@host) names for applications which do not support this. |
This would be a great addition. When I first scouted proxysql I was in hope that "frontend" and "backend" fields in the user tables had this exact purpose. |
+1 |
+1. i know it's an old ticket but this just came up for us this week. |
Kerberos could be a nice option . |
I really hope to see this functionality being added because I cannot use replicas with ProxySQL connectend to Azure MariaDB. |
+1 |
1 similar comment
+1 |
@renecannao - can we do something about it? :) |
+1 |
1 similar comment
+1 |
I would like to use ProxySQL as an auth middleware/proxy for MySQL server.
To my understanding, ProxySQL currently reuses the credentials it received from the client to connect to the backend server, I would need to have it's own list of credentials to accept connections from AND it's own list of credentials to use when connecting to a backend.
The need: Delegate authentication to a MySQL server/database to another brick (thus. ProxySQL).
I want my users to auth themselves on the middleware/proxy (ProxySQL) using it's own local users database (or an external auth such as LDAP, PAM, etc.) which will then connect to the real MySQL server (the backend) associated to the user using the backend's credentials.
Schema:
Steps:
bob_foo:secretB1
mysql_users
table (=>user_id=2
).(If credentials from step 1. are not OK: ProxySQL refuses connection. If they are OK, continue)
users2hostgroup
table to determine which group of MySQL servers the user from step 1. has access to (=>hostgroup_id=1
).mysql_group_replication_hostgroups
andmysql_servers
to determine the MySQL server to connect to (classic process) (=>hostname=db2.app-foo.example.com
).mysql_servers
table the credentials to connect with (=>app-foo:secretF
).Table
mysql_users
:Table
users2hostgroup
:Table
mysql_servers
:The text was updated successfully, but these errors were encountered: