shinbuntu/db-user

创建 Mysql 用户并管理权限

1.0.5 2017-05-15 15:21 UTC

This package is not auto-updated.

Last update: 2024-09-20 19:40:19 UTC


README

轻松创建 Mysql 用户并管理权限。

Scrutinizer Code Quality

为什么?

该项目简化了 PHP 中的 MySQL 用户账户管理,避免了使用原始 SQL 查询。

安装

$ composer require shinbuntu/db-user

使用

使用 PDO 或 Doctrine 连接实例化管理器

$dbUserManager = new DbUser($dbConnection);

创建新用户

$dbUserManager->createUser('test_username', '!super_secure_password$');

删除用户

$dbUserManager->dropUser('test_username');

测试用户是否存在

$dbUserManager->userExist('test_username');

授予所有数据库的 mysql 用户权限(别忘了刷新权限)

$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,
    ]
);

授予特定数据库的 mysql 用户权限(别忘了刷新权限)

$dbUserManager->grantPrivileges(
    'test_username',
    [
        DbUser::PRIVILEGE_SELECT,
        DbUser::PRIVILEGE_INSERT,
        DbUser::PRIVILEGE_UPDATE,
        DbUser::PRIVILEGE_DELETE,
    ],
    'test_database_name'
);

授予特定表的 mysql 用户权限(别忘了刷新权限)

$dbUserManager->grantPrivileges(
    'test_username',
    [
        DbUser::PRIVILEGE_SELECT,
        DbUser::PRIVILEGE_INSERT,
        DbUser::PRIVILEGE_UPDATE,
        DbUser::PRIVILEGE_DELETE,
    ],
    'test_database_name',
    'test_table_name'
);

撤销所有数据库的 mysql 用户权限(别忘了刷新权限)

$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,
    ]
);

撤销特定数据库的 mysql 用户权限(别忘了刷新权限)

$dbUserManager->revokePrivileges(
    'test_username',
    [
        DbUser::PRIVILEGE_SELECT,
        DbUser::PRIVILEGE_INSERT,
        DbUser::PRIVILEGE_UPDATE,
        DbUser::PRIVILEGE_DELETE,
    ],
    'test_database_name'
);

撤销特定表的 mysql 用户权限(别忘了刷新权限)

$dbUserManager->revokePrivileges(
    'test_username',
    [
        DbUser::PRIVILEGE_SELECT,
        DbUser::PRIVILEGE_INSERT,
        DbUser::PRIVILEGE_UPDATE,
        DbUser::PRIVILEGE_DELETE,
    ],
    'test_database_name',
    'test_table_name'
);

刷新权限

$dbUserManager->flushPrivileges();

贡献

查看 CONTRIBUTING 文件。

许可

该项目是开源软件,受 MIT 许可 许可。