Skip to content
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

[Enhancement] Authentication feature of ShardingProxy #8966

Closed
19 tasks done
tristaZero opened this issue Jan 10, 2021 · 0 comments
Closed
19 tasks done

[Enhancement] Authentication feature of ShardingProxy #8966

tristaZero opened this issue Jan 10, 2021 · 0 comments

Comments

@tristaZero
Copy link
Contributor

tristaZero commented Jan 10, 2021

Introduction

This feature is the same as the authentication of MySQL or PostgreSQL. ShardingProxy has to do access control when users login in.

Three key points need to clarify

  • This issue is an enhancement feature for the current Authentication module
  • All users configured in server.yaml of ShardingProxy still work and are seen as system users.
  • We will leverage the access-control power of different Databases

Tasks

Load

  • Get users from DB and Configuration
  • Load the privilege information from databases
  • Merge privileges by rules
  • Refactor API and user configuration
  • Different implement of loading privileges from Oracle/Pg/SQLServer

Refresh

  • ShardingProxy supports create user SQL, which will be pushed down to databases
  • ShardingProxy supports grant SQL, which will be pushed down to database
  • ShardingProxy supports revoke SQL, which will be pushed down to databases
  • Refresh users and reload privileges for the SQLs above

Check

Login

  • Get the IP or hostname once users login
  • Get the user name, password once users login
  • Check users' name and password
  • SQL check interface and framework
  • SQL checking for use DB and show DB
  • SQL checking for other SQLs

Tests

  • PrivilegeBuilder
  • PrivilegeMerger
  • PrivilegeLoader
  • MetadataRefreshEngine
@tristaZero tristaZero added this to the 5.0.0-beta milestone Jan 10, 2021
@menghaoranss menghaoranss self-assigned this Mar 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants