MySQL提供了从shell创建和管理用户的能力。安全性是数据库服务器的重要组成部分。在本教程中,我们将研究如何在MySQL数据库服务器中创建用户和管理权限。我们将专门学习如何限制用户访问数据库、数据库服务器、授予不同类型的特权、打印这些特权。
登录MySQL Shell
为了创建一个用户并管理该用户的权限,我们将登录MySQL shell。MySQL shell提供了访问数据库、运行SQL查询、创建用户、删除用户、管理用户权限等管理操作的能力。我们将使用 mysql
用户名为 root
在这种情况下。我们将提供 root
还有用户密码。
$ sudo mysql -u root -p

创建新数据库用户
我们将使用 CREATE USER
通过提供用户名、主机名和密码。主机名用于设置用户是否可以从给定主机进行连接。在本例中,我们指定 localhost
也就是说给定的用户 ismail
只能从localhost连接到此数据库服务器。我们还提供密码作为 SoS3cret..!
> CREATE USER 'ismail'@'localhost' IDENTIFIED BY 'SoS3cret..!';

成功创建后 Query OK, 0 rows affected (0.01 sec)
已打印。
删除现有数据库用户
如果我们不需要给定的数据库用户,我们就必须删除用户,因为这可能会造成安全问题和意外的数据库访问。我们可以用DROP用户删除现有的数据库用户 通过提供用户名和访问主机名。在本例中,我们将删除用户 ismail
具有 localhost
进入。
> DROP USER [email protected];

列出现有数据库用户
在创建一个数据库用户之后,我们可能希望检查并列出MySQL数据库中的现有用户。在本例中,我们将使用SQL语句列出 mysql
数据库 user
桌子。 user
中的表 mysql
数据库保存数据库服务器用户和相关信息,如密码等,我们将使用 SELECT User
声明。
> SELECT User FROM mysql.user;

创建用于访问特定数据库的新用户
我们可以指定用户只能访问指定的数据库。这将阻止用户访问其他数据库。我们将使用“授予所有特权” 在本例中,通过提供数据库名、用户名和主机名。在下面的示例中,我们将授予数据库的所有特权 poftut
对用户 ismail
.
> GRANT ALL PRIVILEGES ON poftut . * TO 'ismail'@'localhost';

将更改写入数据库
更改可能存储在缓存中,但不会立即生效。我们可以使用以下命令将这些更改显式地写入数据库服务器。
> FLUSH PRIVILEGES;

创建具有访问位置的新用户
我们还可以为给定的用户和数据库指定访问位置。到目前为止,我们已经使用了localhost,这是一种只有本地用户才能访问的安全方式。我们还可以为特定的网络或主机提供访问权限。在本例中,我们将提供来自IP地址的访问 192.168.1.10
.
> GRANT ALL PRIVILEGES ON poftut . * TO 'ismail'@'192.168.1.10';
显示并列出给定的用户权限
我们可能要列出为给定用户授予的特权。我们将使用表演补助金 此操作的命令。在本例中,我们将列出为用户授予的特权 ismail
访问 localhost
.
> SHOW GRANTS FOR [email protected];

相关文章: 如何列出MySQL数据库用户?