视频: 途说Linux之2【总之第3】:搭建SSR服务器多用户版的前期准备——安装MySQL数据库 2024
安装MySQL时,会自动创建一个名为mysql 的数据库。所有用于保护您的数据的信息都存储在此数据库中,包括帐户名称,主机名,密码和权限。 权限存储在列中。每个列名的格式是
特权 _priv,其中 特权 是特定的帐户特权。例如,包含ALTER权限的列名为alter_priv。每个权限列中的值是Y或N,意思是是或否。 <! - 1 - >
所以,例如在用户表中,会有一行帐号和一列alter_priv。如果alter_priv的帐户字段包含Y,则该帐户可用于执行ALTER语句。如果alter_priv包含N,则该帐户无权执行ALTER语句。mysql数据库包含以下用于存储权限的表:
user
-
table: 此表存储适用于所有数据库和表的权限。它包含每个包含列用户名,主机名和密码的有效帐户的行。 MySQL服务器拒绝该表中不存在的帐户的连接。 <! - 2 - >
db -
表: 此表存储应用于特定数据库的权限。它包含一个数据库的行,它给予了一个帐户名和一个主机名的权限。该帐户必须存在于用户表中以授予特权。用户表中给出的特权在此表中取代特权。 例如,如果用户表为拥有INSERT权限的帐户设计人员设置了一行,则设计人员可以将其插入到所有数据库中。如果数据库表中的行对于PetCatalog数据库中的设计者帐户的INSERT显示N,那么用户表覆盖它,并且设计者可以插入到PetCatalog数据库中。
-
table: 该表根据主机控制对数据库的访问。主机表与db表一起使用。如果数据库表中的某行有一个空的主机字段,MySQL会检查主机表来查看数据库是否有一行。这样,您可以允许从某些主机访问数据库,但不能从其他主机访问数据库。 例如,假设您有两个数据库:db1和db2。 db1数据库有敏感信息,所以你只想要某些人看到它。 db2数据库包含您希望每个人都可以看到的信息。如果您的db1的db表中有一行具有空白的主机字段,则主机表中的db1可以有两行。
一行可以授予从特定主机连接的用户的所有权限,而另一行可以拒绝从任何其他主机连接的用户的权限。
tables_priv
-
表: 此表存储适用于特定表的权限。 columns_priv
-
表: 此表存储应用于特定列的权限。 如果您使用具有必要权限的帐户,则可以直接在mysql中查看并更改这些表。您可以使用SQL查询,如SELECT,INSERT和UPDATE。如果您通过您的雇主,客户或网站托管公司访问MySQL,您可能没有拥有必要权限的帐户。