数据库服务器一般包含关键的数据,确保这些数据的安全和完整须要利用访问控制。html
MySQL服务器的安全基础:用户应该对他们须要的数据具备适当的访问权,既不能多也不能少。mysql
访问控制:你须要给用户提供他们所需的访问权,且仅提供他们所需的访问权。sql
在平常工做中,毫不能使用root,应该建立一系列的帐号,有的用于管理,有的供用户使用,有的供开发人员使用等等。数据库
防止无心的错误:访问控制的目的不单单是防止用户的恶意企图。数据梦魇更为常见的事无心识错误的结果,如错打MySQL语句,在不适合的数据库中操做或其余一些用户错误。经过保证用户不能执行他们不该该执行的语句,访问控制有助于避免这些状况的发生。安全
MySQL用户帐号和信息存储在名为mysql的MySQL数据库中。通常不须要直接访问mysql数据库和表,但有时须要直接访问。须要直接访问他的时机之一是在须要得到全部用户帐号列表时。服务器
USE mysql;
SELECT user,host FROM user;
CREATE USER username IDENTIFIED BY 'password';
函数
为用户帐号重命名:RENAME USER username TO otherusername;
加密
DROP USER username;
code
在建立用户帐号后,必须接着分配访问权限。新建立的用户帐号没有访问权限。它们能登陆MySQL,但不能看到数据,不能执行任何数据库操做。htm
查看赋予用户帐号的权限:
SHOW GRANTS FOR username;
+————————————————————-+
| Grants for username@% |
+——————————————————— —+
| GRANT USAGE ON . TO 'username'@'%' |
+————————————————————-+
为设置权限,使用GRANT语句。GRANT要求你至少给出如下信息:
要授予的权限;
被授予访问权限的数据库或表;
用户名。
Example:
GRANT SELECT ON database.* TO username;
分析:此GRANT容许用户在database数据库的全部表(databasename.)上使用SELECT。用户username对database数据库中的全部数据具备只读访问权限。
GRANT的反操做为REVOKE,用它来撤销特定的权限。
REVOKE SELECT ON database.
FROM username;
撤销用户username的SELECT访问权限。被撤销的访问权限必须存在,不然会出错。
SET PASSWORD FOR user = Password('passworded');
Password()函数进行加密。
在不指定用户名时,SET PASSWORD更新当前登陆用户的口令。