创建一个数据库并不难,无非是 Root 进入到数据库后,输入 CREATE DATABASE 数据库名;
的事。但是很多人在输入数据库账号密码时,都默契地给出 Root 的账户。这并不优雅(符合标准流程),或者说,符合我们的安全需要。所以,如何做才是优雅的呢,符合标准流程,安全需要的呢?
正文:
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;
完成:
后记:
如果,你希望 查看用户权限 的话:
SHOW GRANTS FOR 'test'@'localhost';
如果,你希望 删除这个用户 的话:
DROP USER 'test'@'localhost';
发表回复