文档 / 一个数据库用户对应多个数据库

一个数据库用户对应多个数据库

一个使用两个数据库的应用——比如一个主库和一个用于 后台的独立 schema——并不需要两个登录凭据。给一个用户授予对两者的访问权即可。

给一个用户再加一个数据库

数据库 → 数据库用户 → 在该用户所在的行上,点击 添加数据库(Add database)。

系统会询问数据库的短名(shop,而不是 youracct_shop)。 该用户保留其现有密码和现有访问权;新数据库 被添加到它名下。

那张表中的每一行都会显示该用户当前能够访问什么:

app        Databases: shop, admin        Access: localhost only

一个尚无任何数据库的用户会显示为 no databases yet。

撤回一个数据库

同一行,点击 移除数据库(Remove database)。该按钮在用户持有至少 一个数据库后才会出现。系统会询问撤回哪一个,当只有 一个可选时会预先填好。

从一个用户处移除某个数据库并不会删除该用户,也不会触及 该数据库。用户保留其密码以及它持有的所有其他数据库。 这正是重点:在这个功能出现之前,撤回访问权的唯一办法是 删除用户,而这会中断每一个仍在用它登录的站点。

使用前值得了解的事

  • 访问权一次只授予一个数据库。 用户永远不会获得对服务器的 全面访问权;每次授权都点名你名下的某一个数据库。
  • 你可以移除一个数据库的最后一个用户。 没有什么会阻止你,也没有什么会 警告你。数据库及其内容会保留,但在你再次授予某个登录凭据之前, 没有任何登录能触及它——如果某个站点突然报告它 无法连接,这就是修复的办法。
  • 名字带有你的账户前缀。 你以 shop 创建的数据库在服务器上是 youracct_shop,用户 app 则是 youracct_app。在面板里输入 短名,而在你的应用配置里填写完整名字。
  • 只能是你自己的数据库和用户。 点名另一个账户的 数据库的授权会被拒绝。撤销也是如此。

从零开始设置一个

  1. 数据库 → 创建数据库,做两次——例如 site 和 admin。
  2. 创建用户并连接(Create user & connect):为用户命名,从下拉框中选择 site。 这就是第一次授权。
  3. 在新用户所在的行上,点击 添加数据库(Add database),并输入 admin。

在密码显示出来时把它复制下来。面板以一种它无法读回的形式 存储密码,因此丢失的密码是被重置,而非找回——那就是同一行上的 密码(Password)。

当有什么看起来不对时

“No such database for this account.” 名字打错了,或者你输入了 带前缀的形式。请使用上面数据库表中显示的短名。

“No such database user for this account.” 页面上的用户列表 过期了。重新加载它。

应用连得上一个数据库但连不上另一个。 确认该行的 Databases 下同时列出了两者,并且应用使用的是带前缀的 名字(youracct_admin)以及相同的主机——除非你为该用户配置了 远程主机(Remote hosts),否则就是 localhost。

从一台远程机器上看,一次授权似乎没有效果。 在这里添加的授权 适用于本地登录。如果该用户还从一个外部地址连接, 授权后请重新保存它的 远程主机(Remote hosts) 列表,这样远程条目才会 与该用户现在持有的数据库保持同步更新。