如何为某个网站创建一个数据库和数据库账号供其使用。

创建一个数据库并不难,无非是 Root 进入到数据库后,输入 CREATE DATABASE 数据库名; 的事。但是很多人在输入数据库账号密码时,都默契地给出 Root 的账户。这并不优雅(符合标准流程),或者说,符合我们的安全需要。所以,如何做才是优雅的呢,符合标准流程,安全需要的呢?

Database-Config

正文:

1.首先 ,我们先使用 Root(数据库的Root) 进入到 MySQL 去。

mysql -u root -p

2.之后 ,创建一个数据库,比如说我们的数据库名叫 forumdb。(数据库语法在保证没错的前提下,大小写都行)

CREATE DATABASE forumdb;

3.之后 ,我们创建一个名为 test 并且只能 本地访问 的数据库用户。(你的网站和数据库一般都在一台机器上,所以这样做。这样做也会安全许多。)

# 三选一

# 本地访问的用户 - 推荐 (网站和数据库在同一台服务器)
CREATE USER 'test'@'localhost' IDENTIFIED BY '设置该账户的密码';

# 允许远程访问的用户 - (网站和数据库在不同的服务器)
CREATE USER 'test'@'%' IDENTIFIED BY '设置该账户的密码';

# 只允许特定IP访问的用户
CREATE USER 'test'@'IP地址' IDENTIFIED BY '设置该账户的密码';

4.之后 ,我们授予我们刚刚创建的账户 test 访问 forumdb 这个数据库的权限。

# 根据上面的设置 - 三选一

# 给予本地访问的用户权限 - 推荐(网站和数据库在同一台服务器)
GRANT ALL PRIVILEGES ON forumdb.* TO 'test'@'localhost';

# 给予远程访问的用户权限 - (网站和数据库在不同的服务器)
GRANT ALL PRIVILEGES ON forumdb.* TO 'test'@'%';

# 给予特定IP访问的权限
GRANT ALL PRIVILEGES ON wpd.* TO 'test'@'IP地址';

上方 ALL PRIVILEGES
– 表示授予该用户对 wpd 数据库的所有操作权限(如 SELECT、INSERT、UPDATE、DELETE 等)。

  • 如果希望限制为特定权限,可以改为如(本地访问用户的例子):
GRANT SELECT, INSERT, UPDATE, DELETE ON forumdb.* TO 'test'@'localhost';

5.最后 ,我们刷新权限,以使得我们的设置生效。

FLUSH PRIVILEGES;

完成:

Database-Config-Done


后记:

如果,你希望 查看用户权限 的话:

SHOW GRANTS FOR 'test'@'localhost';

如果,你希望 删除这个用户 的话:

DROP USER 'test'@'localhost';

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注