2017 © Pedro Peláez
 

library db-user

Create Mysql users and manage privileges

image

shinbuntu/db-user

Create Mysql users and manage privileges

  • Monday, May 15, 2017
  • by shinbuntu
  • Repository
  • 1 Watchers
  • 1 Stars
  • 47 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 8 Versions
  • 0 % Grown

The README.md

MySQL User Account Management in PHP

Create Mysql users and manage privileges easily., (*1)

Scrutinizer Code Quality, (*2)

Why?

This project makes easier the MySQL User Account Management in PHP and it avoids the use of raw SQL queries., (*3)

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., (*4)

License

The project is open-sourced software licensed under the MIT license., (*5)

The Versions