clubdrei / db-user-manager
Create Mysql users and manage privileges
1.0.10
2019-10-20 12:46 UTC
Requires
- php: >7.1 <7.4
- doctrine/dbal: ^2.9
Requires (Dev)
- atoum/atoum: ~2.2
- mayflower/php-codebrowser: ~1.1
- pdepend/pdepend: ~2.1
- phpdocumentor/phpdocumentor: ~2.8
- phploc/phploc: ~2.1
- phpmd/phpmd: ~2.2
- sebastian/phpcpd: ~2.0
- siwayll/phpcs-norme-dpsi: ~3.2
README
Create Mysql users and manage privileges easily.
Why?
This project makes easier the MySQL User Account Management in PHP and it avoids the use of raw SQL queries.
Installation
$ composer require shinbuntu/db-user
Usage
Instantiate the manager with PDO or Doctrine Connection
$dbUserManager = new DbUser($dbConnection);
Create a new user
$dbUserManager->createUser('test_username', '!super_secure_password$');
Drop a user
$dbUserManager->dropUser('test_username');
Test if user already exist
$dbUserManager->userExist('test_username');
Grant privileges to mysql user on all databases (don't forget to flush privileges)
$dbUserManager->grantPrivileges( 'test_username', [ DbUser::PRIVILEGE_CREATE_USER, DbUser::PRIVILEGE_CREATE, DbUser::PRIVILEGE_GRANT_OPTION, DbUser::PRIVILEGE_ALTER, DbUser::PRIVILEGE_FILE, DbUser::PRIVILEGE_RELOAD, DbUser::PRIVILEGE_SELECT, DbUser::PRIVILEGE_INSERT, DbUser::PRIVILEGE_UPDATE, DbUser::PRIVILEGE_DELETE, ] );
Grant privileges to mysql user on specific database (don't forget to flush privileges)
$dbUserManager->grantPrivileges( 'test_username', [ DbUser::PRIVILEGE_SELECT, DbUser::PRIVILEGE_INSERT, DbUser::PRIVILEGE_UPDATE, DbUser::PRIVILEGE_DELETE, ], 'test_database_name' );
Grant privileges to mysql user on specific table (don't forget to flush privileges)
$dbUserManager->grantPrivileges( 'test_username', [ DbUser::PRIVILEGE_SELECT, DbUser::PRIVILEGE_INSERT, DbUser::PRIVILEGE_UPDATE, DbUser::PRIVILEGE_DELETE, ], 'test_database_name', 'test_table_name' );
Revoke privileges to mysql user on all databases (don't forget to flush privileges)
$dbUserManager->revokePrivileges( 'test_username', [ DbUser::PRIVILEGE_CREATE_USER, DbUser::PRIVILEGE_CREATE, DbUser::PRIVILEGE_GRANT_OPTION, DbUser::PRIVILEGE_ALTER, DbUser::PRIVILEGE_FILE, DbUser::PRIVILEGE_RELOAD, DbUser::PRIVILEGE_SELECT, DbUser::PRIVILEGE_INSERT, DbUser::PRIVILEGE_UPDATE, DbUser::PRIVILEGE_DELETE, ] );
Revoke privileges to mysql user on specific database (don't forget to flush privileges)
$dbUserManager->revokePrivileges( 'test_username', [ DbUser::PRIVILEGE_SELECT, DbUser::PRIVILEGE_INSERT, DbUser::PRIVILEGE_UPDATE, DbUser::PRIVILEGE_DELETE, ], 'test_database_name' );
Revoke privileges to mysql user on specific table (don't forget to flush privileges)
$dbUserManager->revokePrivileges( 'test_username', [ DbUser::PRIVILEGE_SELECT, DbUser::PRIVILEGE_INSERT, DbUser::PRIVILEGE_UPDATE, DbUser::PRIVILEGE_DELETE, ], 'test_database_name', 'test_table_name' );
Flush privileges
$dbUserManager->flushPrivileges();
Contributing
See the CONTRIBUTING file.
License
The project is open-sourced software licensed under the MIT license.