MySQL是使用最广泛的关系型数据库管理系统之一,为了保证数据安全性,MySQL拥有强大的授权系统。在MySQL中,管理员可以设定不同的权限给不同的用户来控制数据库的访问。
授权系统基本操作:
GRANT 权限 ON 数据库.表 TO '用户'@'主机' IDENTIFIED BY '密码';REVOKE 权限 ON 数据库.表 FROM '用户'@'主机';
授权语句中的具体参数解释:
权限:所赋予操作的权限,如: SELECT、INSERT、UPDATE、DELETE、ALL PRIVILEGES等。数据库.表:所赋予权限的数据库及其中的表。用户:被赋予权限的用户账号。主机: 受访问限制的主机名称或IP地址。密码:用户需要登录时必须使用该密码。
授权系统的示例:
-- 新建一个test库和t_user表CREATE DATABASE test CHARACTER SET utf8;CREATE TABLE t_user (id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(20) NOT NULL,age TINYINT(4) NOT NULL,PRIMARY KEY (id),UNIQUE KEY name (name) -- 要求name列值唯一) ENGINE = InnoDB CHARACTER SET utf8;-- 给a1@a_host帐号授权SELECT,INSERT权限,以访问test库中的t_user表GRANT SELECT,INSERT ON test.t_user TO 'a1'@'a_host' IDENTIFIED BY 'password';-- 给a2@a_host帐号授权SELECT权限,以访问test库中的t_user表GRANT SELECT ON test.t_user TO 'a2'@'a_host' IDENTIFIED BY 'password';-- 收回a1@a_host帐号对test库中t_user表的SELECT权限REVOKE SELECT ON test.t_user FROM 'a1'@'a_host';
通过授权系统,管理员可以非常灵活地控制不同用户对数据库的操作权限,从而实现数据安全性的保障。