MariaDB数据库安装步骤移步我的另一篇文章: RHEL 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)
一、管理用户以及授权
为了保障数据库系统的安全性,以及让其他用户协同管理数据库,我们可以在MariaDB数据库管理系统中为他们创建多个专用的数据库管理账户,然后再分配合理的权限,以满足他们的工作需求。为此,可使用root管理员登录数据库管理系统,然后按照“CREATE USER 用户名@主机名 IDENTIFIED BY '密码'; ”的格式创建数据库管理账户。再次提醒大家,一定不要忘记每条数据库命令后面的分号(;)。
MariaDB [(none)]> CREATE USER luke@localhost IDENTIFIED BY 'linuxprobe'; Query OK, 0 rows affected (0.00 sec)
创建的账户信息可以使用select命令语句来查询。下面命令查询的是账户luke的主机名称、账户名称以及经过加密的密码值信息:
MariaDB [(none)]> use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [mysql]> SELECT HOST,USER,PASSWORD FROM user WHERE USER="luke"; +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | localhost | luke | *55D9962586BE75F4B7D421E6655973DB07D6869F | +-----------+------+-------------------------------------------+
不过,用户luke仅仅是一个普通账户,没有数据库的任何操作权限。不信的话,可以切换到luke账户来查询数据库管理系统中当前都有哪些数据库。可以发现,该账户甚至没法查看完整的数据库列表(刚才使用root账户时可以查看到3个数据库列表):
MariaDB [mysql]> exit Bye [root@linuxprobe ~]# mysql -u luke -p Enter password: 此处输入luke账户的数据库密码(linuxprobe) Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 6 Server version: 5.5.35-MariaDB MariaDB Server Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | +--------------------+ 1 row in set (0.03 sec)
数据库管理系统所使用的命令一般都比较复杂。我们以grant命令为例进行说明。grant命令用于为账户进行授权。
GRANT命令的常见格式以及解释
命令 | 作用 |
GRANT 权限 ON 数据库.表单名称 TO 用户名@主机名 | 对某个特定数据库中的特定表单给予授权 |
GRANT 权限 ON 数据库.* TO 用户名@主机名 | 对某个特定数据库中的所有表单给予授权 |
GRANT 权限 ON *.* TO 用户名@主机名 | 对所有数据库及所有表单给予授权 |
GRANT 权限1,权限2 ON 数据库.* TO 用户名@主机名 | 对某个数据库中的所有表单给予多个授权 |
GRANT ALL PRIVILEGES ON *.* TO 用户名@主机名 | 对所有数据库及所有表单给予全部授权(需谨慎操作) |
当然,账户的授权工作肯定是需要数据库管理员来执行的。下面以root管理员的身份登录到数据库管理系统中,针对mysql数据库中的user表单向账户luke授予查询、更新、删除以及插入等权限。
[root@linuxprobe ~]# mysql -u root -p Enter password:此处输入root管理员在数据库中的密码 MariaDB [(none)]> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [mysql]> GRANT SELECT,UPDATE,DELETE,INSERT ON mysql.user TO luke@localhost; Query OK, 0 rows affected (0.00 sec)
在执行完上述授权操作之后,我们再查看一下账户luke的权限:
+-------------------------------------------------------------------------------------------------------------+
| Grants