要开始编辑 MySQL 中的权限,您必须先登录服务器,然后连接到客户
mysql
端。通常,您需要连接到
root
您的主要、初始“超级用户”帐户,该帐户在整个 MySQL 安装过程中具有完全访问权限。
通常,
root
在安装 MySQL 时,会为用户分配一个身份验证密码,但如果不是这种情况,您应该采取措施通过添加
root
密码来提高安全性,可以参考官方文档。
连接到 MySQL 命令行工具
对于此示例,我们假设
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
) 。这很容易实现,如下所示:
authors
books
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)
版权归原作者 chat2tomorrow 所有, 如有侵权,请联系我们删除。