(更新)首先,我在不同的服务器上有我的应用程序和数据库。连接它们很容易,只是我不确定如何保护我的数据库服务器。
这是我已经完成的:
冉mysql_secure_installation安装MySQL之后。所以,所有这些都得到了照顾:
用于服务器间通信的非公网(在我的 my.cnf 中,有这样的内容:bind-address = 10.128.2.18,其中 10.128.2.18 是 MySQL 数据库服务器的专用网络 IP 地址)。
数据库的单独用户,不可猜测的用户名和 64 个字符的强密码;用户帐号的IP地址设置为应用服务器的私有IP地址。我用这样的命令创建了用户:
GRANT ALL ON `app_db`.* TO 'db_user'@'10.128.2.9' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)
该应用程序是 wordpress,所以我需要GRANT ALL ON避免任何意外问题。
考虑的选项(但未采用):
那么,我还需要什么,还是我足够好?其他人是怎么做的?请尽可能详细(链接到教程或您建议的内容会很有帮助)。
首先,我的设置的一些背景:
服务器已禁用根访问。因此,我以(比如说)john也属于该sudo组的身份登录,因此能够运行超级用户命令。
我创建了一个新的无密码用户#1 santa(使用命令sudo adduser --shell /bin/bash --gecos 'Santa Claus' --disabled-password santa)。
然后我将登录会话的所有者更改为santa使用以下命令:sudo su - santa并创建了一个新的 PostgreSQL 数据库 :(createdb myapp_db该数据库是在没有要求我输入密码的情况下创建的)。
现在,给定条件,如何使用命令对数据库myapp_db(其所有者是santa)进行SQL 转储pg_dump?
这应该有效,但不是:
john@host:~$ pg_dump myapp_db -U santa -h localhost --no-owner -W > myapp_db_backup.sql
Password:
Run Code Online (Sandbox Code Playgroud)
当我运行上述命令时,如您所见,它要求我输入“密码”。我应该在这里输入什么密码?创建数据库时我没有输入任何密码,数据库所有者也没有密码santa。
因此,我尝试输入johnsudo 用户的密码,但出现此错误:
“致命:用户“圣诞老人”的密码验证失败”
我也试过(也没有用):
john@host:~$ su - santa
santa@host:~$ pg_dump myapp_db -U santa -h localhost --no-owner -W > myapp_db_backup.sql
Password: …Run Code Online (Sandbox Code Playgroud)