数据控制语言是用户对于数据库的访问权限的一些操作。
目的:root具有最高的权限,但实际上某些用户只能分配对数据库的部分权限,有时也想对用户登陆的IP进行限制。
用户的账号信息存储在名为mysql的数据库中,进入默认的root用户,USE mysql;SELECT user,host FROM user;mysql数据库里有个user表,表中user列是用户,host是IP地址,默认的root用户,host是localhost,这里可以用UPDATE语句将localhost改成你电脑自己的IP,我试的时候改成了自己的局域网IP,也就是说只有你这台电脑在这个局域网下用这个IP登陆才行,连接时必须要-h加上你的IP才行,这就起到了限制IP的作用。一定要更新一下,否则可能没用。
创建,删除用户账号
CREATE USER 新用户名@IP IDENTIFIED BY ‘密码’;如果没有@IP,host默认为%,就是所有IP都可以连接。我用的5.7的版本,输入新用户名和IP时不需要加引号,先前有些版本可能要加引号。然后更新一下,FLUSH PRIVILEGES;
RENAME USER 旧用户名 TO 新用户名;重命名
DROP USER 用户名@IP;删除账号
显示并设置访问权限
这步要在root下面操作,新建的账号是没有任何权限的。
SHOW GRANTS FOR 用户名@IP;显示该用户访问权限,下面显示GRANT USAGE表示没有任何权限。
GRANT 权限 ON *.* TO 用户名@IP;权限就是SELECT, INSERT, DELETE, UPDATE这类的,可以用ALL代替,表示赋予所有权限,*.*表示所有数据库中的所有表,第一个*可以用特定数据库代替,第二个*可以用特定的表代替,表示赋予有关特定数据库的特定表的某些权限。
REVOKE 和GRANT相对。
更改密码
在当前用户下可以直接SET PASSWORD = password(‘密码’);password()是个函数,用来加密密码。加上FOR 用户名,可以指定用户。
mysqladmin -uroot -p原密码 password 新密码 这样也可以改密码