为什么 MySQL 和 MariaDB 有 ROOT(而不是 root)帐户?

为什么 MySQL 和 MariaDB 有 ROOT(而不是 root)帐户?

据我所知,MySQL 和 MariaDB 数据库的“ROOT”帐户与操作系统的“root”帐户完全分开。为什么有人认为创建一个模棱两可的名字是个好主意?我是否正确地认为它们是不同的实体?

答案1

操作系统不通过名称来识别用户、组等实体。他们通过数字或字母数字身份来识别它们,在类 Unix 操作系统中称为 UID,在 Windows 中称为 SID,从/etc/passwdLDAP 数据库(或任何用于身份验证的方法)中提取。

root或者操作系统的超级用户对于rootMySQL 或 MariaDB 来说是完全不同的。第二个仅适用于 MySQL 或 MariaDB,并且只能通过这种方式进行识别。这与您有一个名为 的本地或 LDAP 用户cygni以及一个名为 的 MySQL 用户没有什么不同cygni。操作系统甚至不知道第二个,因为它仅存在于 RDBMS 中,其中存在包含用户信息的数据库和表。虽然我不建议尝试此操作,但您可以授予本地或 LDAP 用户对 MySQL 数据目录的读取访问权限,但如果不这样做,您将无法使用该用户登录 MySQL 实例或在数据库中执行任何操作实例中不存在或没有权限这样做。虽然某些 RDBMS 可以设置为通过 LDAP 或系统的身份验证进行身份验证,但它仍然能够执行任何操作,因为它无法直接访问并且不知道密码等。话虽如此,您还是正确的是它们是两个不同的实体。

相关内容