shinbuntu / db-user
Create Mysql users and manage privileges
1.0.5
2017-05-15 15:21 UTC
Requires
- php: ~5.6
- doctrine/dbal: 2.4.*
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
This package is not auto-updated.
Last update: 2025-01-10 21:13:28 UTC
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.