我有一个带有凭证的数据库,它是我的网站的数据库。
有没有办法从我的本地机器使用 IP、用户和密码访问该数据库?
使用 Ubuntu 18.04、phppgadmin 和 PostgreSQL。
谢谢。
答案1
是的,如果您具有服务器的根访问权限。
警告:如果您没有静态 IP 地址,则不建议使用此方法,因为您需要向全世界开放您的数据库,而出于安全措施的考虑,此功能默认是禁用的,最好使用下面的方法。
如果你想忽略我的警告:
在postgresql.conf
:
listen_addresses = '*'
#or
listen_addresses = 'your-static-ip'
添加pg_hba.conf
此项以允许来自任何 IP 的远程连接:
host all all 0.0.0.0/0 md5
#or
host all all your-static-ip/32 md5
推荐方法:
如果您可以使用 连接到服务器ssh
,那么还有更好/更安全的方法:
首先创建本地端口转发隧道:
ssh -L 5432:127.0.0.1:5432 your-server.com
#or
ssh -L 5432:localhost:5432 your-server.com
这会将本地端口转发ssh
到您服务器上的端口。然后,您可以作为localhost
主机连接到该端口。
答案2
很可能不是。
托管网站的提供商将限制对数据库的访问,仅允许来自 Web 服务器的请求。所有其他请求都将被忽略。否则,他们将不断受到想要侵入数据库的黑客的攻击。
因此,唯一可以访问数据库的程序是那些在您的 Web 服务器上运行的程序。通常这意味着 PHP 程序,例如您网站所基于的程序。访问数据库的凭据将存储在配置文件中。此外,作为一项服务,托管公司通常提供 PHPMyAdmin(对于 MySQL)或 PHPPGAdmin(对于 PostgreSQL)。对于后者,您需要自己提供数据库凭据。