此前已经了解了使用者帐户如何在 MySQL 或 MariaDB 资料库系统中工作,以及如何建立和删除它们。这一次的内容 WordPress 站群美国站群服务器商将介绍如何确保这些使用者拥有对资料库进行实际更改的许可权。
管理许可权
首先,确定需要使用哪些命令来管理这些许可权。与上次一样,需要使用根使用者登入到资料库客户端来执行这些命令:
GRANT privilege_type ON database_name.table_name TO ‘user’@‘host’;
第一部分是 GRANT 命令,用于向使用者授予许可权。稍后将解释 “privilege_type”,但希望读者还熟悉上一次引用使用者帐户的 ‘user’@’host’ 方法。 “database_name.table_name” 是目前感兴趣的部分。每个 MySQL 或 MariaDB 站群服务器都能够处理由资料表组成的多个资料库。许可权系统是非常精细的,允许将使用者帐户许可权指定到特定的表,这意味著可以确保使用者帐户只能检视或操作管理员设定的使用者帐户所需的准确资料。在本例中,万用字元星号(*)可用于指定所有资料库或表。
REVOKE privilege_type ON database_name.table_name TO ‘user’@‘host’;
接下来,使用 REVOKE 命令,不出所料,它能从使用者帐户中删除许可权。命令格式与 GRANT 命令相同。要检视特定使用者的许可权,可以使用 SHOW GRANTS 命令,如下所示:
SHOW GRANTS FOR ‘user’@‘host’;
以下是具体的许可权型别:
* CREATE——此项允许使用者帐户建立一个新的表或资料库。
* DROP——此项允许使用者帐户删除一个表或资料库。
* INSERT——此项允许使用者帐户向表中新增新行。
* UPDATE——此项允许使用者帐户更改表行资料。
* DELETE——此项允许使用者从表中删除行。
* SELECT——此项允许使用者检视资料库中的资料。
* ALL——此项给了一个使用者帐户的所有许可权,在指定的资料库、表或没有指定的任何资料或内容。
管理其他许可权选项
这不是一个完整的许可权型别列表,但它确实涵盖了在向资料库新增使用者帐户时可能要使用的许多常用的许可权型别。有关完整的列表,请参阅 MySQL 手册中的表 13.3 。以下是这个许可权系统的实际执行情况:
GRANT ALL ON *.* TO ‘user’@‘host’;
该命令将资料库系统上的所有许可权授予使用者帐户 ‘user’@’host’ 。这通常不是一个好主意,因为根帐户已经有了这些许可权,并且几乎不需要具有相同许可权级别的第二个帐户。
GRANT ALL ON my_database.* TO ‘user’@‘host’;
以上命令授予使用者帐户 ‘user’@’host’ 对资料库 my_database 的所有许可权。
GRANT SELECT, INSERT, UPDATE, DELETE ON my_database.* TO ‘user’@‘host’;
在这个示例中,该命令允许使用者帐户 ‘user’@’host’ 对 my_database 资料库中的所有表使用 SELECT 、 INSERT 、 UPDATE 和 DELETE 命令。
GRANT SELECT ON old_database.table_4 TO ‘user’@‘host’;
最后,上面的命令允许 ‘user’@’host’ 使用资料库 old_database 表 table_4 上的 SELECT 命令。建立使用者并分配其许可权后,最后一步是重新载入所有使用者许可权,以便他们可以使用资料库。这可以通过以下命令完成:
FLUSH PRIVILEGES;
以上就是使用 MySQL 或 Mariadb 资料库与使用者合作的指南。现在读者应该对使用者和许可权的工作方式有了合理的理解,并且应该能够管理资料库的使用者以满足管理员需求。更多相关内容可以了解一下 如何利用 phpmyadmin 设定 mysql 的许可权。