DCL语言:
在mysql数据库中的user表
1.创建用户
语法:
CREATE USER 用户名@'地址' IDENTIFIED BY '密码';
地址:
localhost/127.0.0.1 --只能本机使用,localhost/127.0.0.1
% --所有电脑都可以用,IP的方式
IP地址:192.168.2.235 --只能被235这个IP使用
192.168.2.% --所有192.168.2网段的电脑使用
计算机名 --只能该计算机名使用
示例:
[user1用户只能在localhost这个IP登录mysql服务器]
CREATE USER user1@'localhost' IDENTIFIED BY '123';
[user2用户可以在任何电脑上登录mysql服务器]
CREATE USER user2@’%’ IDENTIFIED BY '123';
2.给用户授权
语法:
GRANT 权限1, … , 权限n ON 数据库名.表名 TO 用户名@'地址';
示例:
GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON mydb1.* TO user1@'localhost';
授予所有权限:
GRANT ALL ON *.* TO user2@'localhost'; [给所有数据库的所有表权限给user2]
创建用户admin设置密码为123456,权限为所有的192.168.2网段的电脑使用,权限为所有权限:
grant all on *.* to admin@'192.168.2.%' identified by '123456';
3.查看用户权限
语法:
SHOW GRANTS FOR 用户名@'地址';
示例:
查看user1,localhost的权限:
SHOW GRANTS FOR user1@'localhost';
4.删除用户
语法:
DROP USER 用户名@'地址';
示例:
删除用户admin,192.168.2.%:
DROP USER admin@'192.168.2.%';
5.修改用户密码:
语法:UPDATE USER SET PASSWORD=PASSWORD('密码') WHERE User='用户名' and Host='IP';
FLUSH PRIVILEGES; --请刷新,否则密码不生效
示例:
修改user1的密码为123456:
update user set password=password('123456') where user='user1' and host='localhost';