Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

MySQL User Account Management in PHP

Create Mysql users and manage privileges easily.

Scrutinizer Code Quality

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.

About

Create Mysql users and manage privileges

Resources

Packages

No packages published

Languages