Mysql 为什么是“a”;授予使用权“;第一次授予用户权限时创建的?

Mysql 为什么是“a”;授予使用权“;第一次授予用户权限时创建的?,mysql,database,privileges,grant,Mysql,Database,Privileges,Grant,我是DBMS管理员方面的新手,当我注意到这一点时,我正在今晚(使用MySQL)建立一个新的数据库。在第一次授予用户特权后,将创建另一个类似的授予 GRANT USAGE on *.* TO user IDENTIFIED BY PASSWORD password 文档中说,USAGE特权意味着“没有特权”,所以我推断它是按层次授予工作的,也许用户必须对所有数据库都有某种特权,所以这是一种包罗万象的特权 我也不明白为什么这一行中有一个由标识的子句,而我创建的授权没有(主要是因为我不明白由标识的子

我是DBMS管理员方面的新手,当我注意到这一点时,我正在今晚(使用MySQL)建立一个新的数据库。在第一次授予用户特权后,将创建另一个类似的授予

GRANT USAGE on *.* TO user IDENTIFIED BY PASSWORD password
文档中说,
USAGE
特权意味着“没有特权”,所以我推断它是按层次授予工作的,也许用户必须对所有数据库都有某种特权,所以这是一种包罗万象的特权

我也不明白为什么这一行中有一个由标识的
子句,而我创建的授权没有(主要是因为我不明白由
标识的
子句用于什么目的)

编辑:很抱歉最初没有说明这一点,补助金是

GRANT ALL PRIVILEGES ON database.* TO admin_user
GRANT SELECT, INSERT, UPDATE, DELETE ON database.* TO user

正如你所说的,在MySQL中,用法是“没有特权”的同义词。从:

使用权限说明符代表“无权限”。它与GRANT一起在全局级别使用,用于修改帐户属性,如资源限制或SSL特征,而不影响现有帐户权限

用法
是一种告诉MySQL帐户存在的方法,而不向该帐户授予任何真正的特权。他们只拥有使用MySQL服务器的权限,因此
使用权限
。它对应于
`mysql`.`user`
表中未设置权限的一行

子句标识的
表示为该用户设置了密码。我们如何知道用户是他们所说的人?他们通过发送正确的帐户密码来识别自己


用户密码是全局级别的帐户属性之一,它不绑定到特定的数据库或表。它还位于
`mysql`.`user`
表中。如果用户在**
上没有任何其他权限
,则授予他们在**
上的
使用权限,并在那里显示他们的密码哈希。这通常是
CREATE USER
语句的副作用。当以这种方式创建用户时,他们最初没有特权,因此只被授予
使用权

此外,当不使用由
子句标识的
时,mysql密码可能是空值,如果不是空值,则可能被加密。但是“是”
USAGE
用于通过授予简单的资源限制(如
MAX\u querys\u PER\u HOUR
)来修改帐户,这同样可以由
使用WITH子句,结合
GRANT USAGE
(未添加特权)或
GRANT ALL
,您还可以在全局级别、数据库级别、表级别等指定
GRANT USAGE

我试图找到
GRANT USAGE on*.to
的含义,并在此处找到。我可以澄清,当您使用以下命令(
create
)创建用户时,
GRANT on*.GRANT on*.TO PASSWORD PASSWORD
标识的用户将被授予:


当您使用
grant
授予特权时,将在其上方添加新的特权。

您能告诉我们您执行的授予吗?我想这是因为允许他们进行身份验证。如果尝试使用错误的用户或/和密码,则无法进行身份验证。具有使用权限的用户可以运行某些SQL命令,如“选择1+1”和“显示进程列表”。它是什么意思?
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';