要开始编辑 MySQL 中的权限,您必须先登录服务器,然后连接到客户
mysql端。通常,您需要连接到root您的主要、初始“超级用户”帐户,该帐户在整个 MySQL 安装过程中具有完全访问权限。
通常, root 在安装 MySQL 时,会为用户分配一个身份验证密码,但如果不是这种情况,您应该采取措施通过添加 root 密码来提高安全性,可以参考官方文档。
对于此示例,我们假设 root 是主 MySQL 帐户。要开始使用 MySQL 命令行工具 ( mysqlcli),请以用户身份连接到您的服务器 root ,然后发出 mysql 命令:
$ mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 112813 Server version: 5.5.43-0ubuntu0.14.04.1 (Ubuntu) [...] mysql> 如果成功,您将看到一些有关 MySQL 连接的输出并面临提示 mysql 。
注意:如果在连接到之前您无法以 root 用户身份直接连接到服务器 mysql,则可以通过添加标志来指定要连接的用户 --user= :
$ mysql --user=username 现在您已处于 mysqlcli 提示符下,您只需发出 GRANT 带有必要选项的命令来应用适当的权限。
该 GRANT 命令能够应用各种权限,从对 CREATE 表和数据库、读取或写入的 能力FILES,甚至对 SHUTDOWN 服务器的能力。该命令有各种各样的标志和选项,因此您可能希望 GRANT 通过浏览来熟悉它实际上可以做 什么官方文档。
在大多数情况下,您将根据 database 帐户应有权访问的特定内容向 MySQL 用户授予权限。例如,常见的做法是, database 服务器上的每个唯一 MySQL 都具有 user 与其相关联的唯一权限,这样只有一个人 user 对另一个人具有身份验证访问权限 database ,反之亦然。
要 GRANT ALL 授予 权限 user,允许该用户完全控制特定的 database,请使用以下语法:
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; 通过该命令,我们告诉 MySQL:
GRANT 类型 (因此当然是一切)。注意:PRIVILEGES 大多数 ALL 现代 MySQL 安装不需要可选 PRIVILEGES 关键字。database_name 于 该数据库的所有 表,如下图所示 .* 。username 当 username 本地连接 时,这些权限被分配给 ,如 所指定@'localhost'。要指定任何有效主机,请 'localhost' 用 替换'%'。也许您不想为整个数据库提供所有权限,而是希望 tolkien 只让用户能够从数据库 表 中读取数据 ( SELECT) 。这很容易实现,如下所示:authorsbooks
mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost'; 虽然不是特别安全,但在某些情况下,您可能希望创建另一个“超级用户”,该用户拥有服务器上所有数据库的所有权限。这可以像上面一样执行,但要用 database_name 通配符星号替换:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%'; 现在 tolkien 具有与默认帐户相同的权限 root ,要小心!
FLUSH PRIVILEGES 作为对用户权限进行任何更新后的最后一步,请务必通过从 提示符发出命令来保存更改 mysql :
mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec)