Joh*_*ick 85 mysql database privileges grant
我是DBMS管理员的新手,当我注意到这一点时,我今晚正在建立一个新的数据库(使用MySQL).在第一次授予用户权限后,会创建另一个看起来像的授权
GRANT USAGE on *.* TO user IDENTIFIED BY PASSWORD password
Run Code Online (Sandbox Code Playgroud)
文档说这个USAGE特权意味着"没有特权",所以我推断这是分层次授予工作的,也许用户必须拥有所有数据库的某种特权,所以这可以作为一个全部捕获?
我也不明白为什么IDENTIFIED BY当我创建的授权没有一个条款时,这一行中有一个子句(主要是因为我不明白该IDENTIFIED BY子句的用途).
编辑:对不起,原来没有说明,赠款是
GRANT ALL PRIVILEGES ON database.* TO admin_user
GRANT SELECT, INSERT, UPDATE, DELETE ON database.* TO user
Run Code Online (Sandbox Code Playgroud)
Esp*_*Boy 123
正如你所说,MySQL USAGE是"无权限"的代名词.从MySQL参考手册:
USAGE特权说明符代表"没有特权".它在GRANT的全局级别用于修改帐户属性,例如资源限制或SSL特性,而不会影响现有帐户权限.
USAGE是一种告诉MySQL存在帐户而不赋予该帐户任何真正特权的方法.因此,他们只有权使用 MySQL服务器USAGE.它对应于`mysql`.`user`表中没有设置权限的行.
该IDENTIFIED BY子句表示为该用户设置了密码.我们如何知道用户是谁?他们确定通过他们的帐户发送了正确的密码本身.
用户的密码是未绑定到特定数据库或表的全局级帐户属性之一.它也住在`mysql`.`user`桌子上.如果用户没有任何其他权限ON *.*,则会授予他们USAGE ON *.*并在那里显示其密码哈希值.这通常是CREATE USER声明的副作用.当以这种方式创建用户时,他们最初没有权限,因此仅授予他们USAGE.
我试图GRANT USAGE on *.* TO找到这里的含义.我可以澄清一下,GRANT USAGE on *.* TO user IDENTIFIED BY PASSWORD password当您使用以下命令()创建用户时将被授予CREATE:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)
当您授予权限时GRANT,将在其上添加新权限.